cecli-dev 0.95.9__tar.gz → 0.95.10__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/PKG-INFO +4 -3
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/README.md +3 -2
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/__init__.py +1 -1
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/_version.py +3 -3
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/coders/base_coder.py +13 -3
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/add.py +7 -1
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/utils/base_command.py +28 -2
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/io.py +12 -3
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/main.py +3 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/mcp/manager.py +10 -4
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/mcp/server.py +14 -2
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/report.py +23 -5
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/config/mcp.md +5 -1
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli_dev.egg-info/PKG-INFO +4 -3
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli_dev.egg-info/SOURCES.txt +1 -0
- cecli_dev-0.95.10/tests/basic/test_custom_commands.py +64 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/.dockerignore +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/.flake8 +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/.gitattributes +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/.github/ISSUE_TEMPLATE/issue.yml +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/.github/workflows/check_pypi_version.yml +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/.github/workflows/docker-build-test.yml +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/.github/workflows/docker-release.yml +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/.github/workflows/issues.yml +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/.github/workflows/pages.yml +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/.github/workflows/pre-commit.yml +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/.github/workflows/release.yml +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/.github/workflows/ubuntu-tests.yml +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/.github/workflows/windows-tests.yml +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/.github/workflows/windows_check_pypi_version.yml +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/.gitignore +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/.pre-commit-config.yaml +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/CHANGELOG.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/CNAME +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/CONTRIBUTING.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/HISTORY.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/LICENSE.txt +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/MANIFEST.in +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/benchmark/Dockerfile +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/benchmark/README.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/benchmark/__init__.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/benchmark/benchmark.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/benchmark/benchmark_classic.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/benchmark/clone-exercism.sh +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/benchmark/cpp-test.sh +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/benchmark/docker.sh +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/benchmark/docker_build.sh +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/benchmark/install-docker-ubuntu.sh +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/benchmark/npm-test.sh +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/benchmark/over_time.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/benchmark/plot.sh +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/benchmark/plots.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/benchmark/problem_stats.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/benchmark/prompts.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/benchmark/refactor_tools.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/benchmark/rsync.sh +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/benchmark/rungrid.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/benchmark/swe-bench-lite.txt +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/benchmark/swe-bench.txt +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/benchmark/swe_bench.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/benchmark/test_benchmark.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/__main__.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/args.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/args_formatter.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/change_tracker.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/coders/__init__.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/coders/agent_coder.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/coders/architect_coder.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/coders/ask_coder.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/coders/chat_chunks.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/coders/context_coder.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/coders/copypaste_coder.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/coders/editblock_coder.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/coders/editblock_fenced_coder.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/coders/editblock_func_coder.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/coders/editor_diff_fenced_coder.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/coders/editor_editblock_coder.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/coders/editor_whole_coder.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/coders/help_coder.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/coders/patch_coder.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/coders/search_replace.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/coders/shell.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/coders/single_wholefile_func_coder.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/coders/udiff_coder.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/coders/udiff_simple.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/coders/wholefile_coder.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/coders/wholefile_func_coder.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/__init__.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/agent.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/architect.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/ask.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/chat_mode.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/clear.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/code.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/command_prefix.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/commit.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/context.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/context_blocks.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/context_management.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/copy.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/copy_context.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/core.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/diff.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/drop.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/editor.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/exit.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/git.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/help.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/history_search.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/lint.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/list_sessions.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/load.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/load_session.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/load_skill.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/ls.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/map.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/map_refresh.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/model.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/models.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/multiline_mode.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/paste.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/quit.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/read_only.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/read_only_stub.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/reasoning_effort.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/remove_skill.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/report.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/reset.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/run.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/save.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/save_session.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/settings.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/terminal_setup.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/test.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/think_tokens.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/tokens.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/undo.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/utils/__init__.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/utils/helpers.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/utils/registry.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/utils/save_load_manager.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/voice.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/weak_model.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/web.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/deprecated_args.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/diffs.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/dump.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/editor.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/exceptions.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/format_settings.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/help.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/help_pats.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/helpers/__init__.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/helpers/copypaste.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/helpers/coroutines.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/helpers/file_searcher.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/helpers/model_providers.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/helpers/nested.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/helpers/plugin_manager.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/helpers/profiler.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/helpers/requests.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/helpers/similarity.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/helpers/skills.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/history.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/linter.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/llm.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/mcp/__init__.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/mcp/oauth.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/mcp/utils.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/mdstream.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/models.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/onboarding.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/prompts/__init__.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/prompts/agent.yml +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/prompts/architect.yml +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/prompts/ask.yml +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/prompts/base.yml +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/prompts/context.yml +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/prompts/copypaste.yml +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/prompts/editblock.yml +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/prompts/editblock_fenced.yml +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/prompts/editblock_func.yml +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/prompts/editor_diff_fenced.yml +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/prompts/editor_editblock.yml +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/prompts/editor_whole.yml +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/prompts/help.yml +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/prompts/patch.yml +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/prompts/single_wholefile_func.yml +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/prompts/udiff.yml +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/prompts/udiff_simple.yml +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/prompts/utils/__init__.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/prompts/utils/registry.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/prompts/utils/system.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/prompts/wholefile.yml +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/prompts/wholefile_func.yml +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/README.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/arduino-tags.scm +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/c-tags.scm +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/chatito-tags.scm +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/clojure-tags.scm +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/commonlisp-tags.scm +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/cpp-tags.scm +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/csharp-tags.scm +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/d-tags.scm +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/dart-tags.scm +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/elisp-tags.scm +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/elixir-tags.scm +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/elm-tags.scm +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/gleam-tags.scm +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/go-tags.scm +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/java-tags.scm +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/javascript-tags.scm +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/lua-tags.scm +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/matlab-tags.scm +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/ocaml-tags.scm +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/ocaml_interface-tags.scm +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/pony-tags.scm +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/properties-tags.scm +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/python-tags.scm +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/r-tags.scm +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/racket-tags.scm +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/ruby-tags.scm +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/rust-tags.scm +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/solidity-tags.scm +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/swift-tags.scm +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/udev-tags.scm +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/README.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/c-tags.scm +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/c_sharp-tags.scm +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/cpp-tags.scm +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/dart-tags.scm +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/elisp-tags.scm +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/elixir-tags.scm +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/elm-tags.scm +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/fortran-tags.scm +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/go-tags.scm +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/haskell-tags.scm +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/hcl-tags.scm +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/java-tags.scm +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/javascript-tags.scm +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/julia-tags.scm +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/kotlin-tags.scm +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/matlab-tags.scm +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/ocaml-tags.scm +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/ocaml_interface-tags.scm +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/php-tags.scm +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/python-tags.scm +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/ql-tags.scm +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/ruby-tags.scm +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/rust-tags.scm +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/scala-tags.scm +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/typescript-tags.scm +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/zig-tags.scm +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/reasoning_tags.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/repo.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/repomap.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/resources/__init__.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/resources/model-metadata.json +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/resources/model-settings.yml +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/resources/providers.json +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/run_cmd.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/scrape.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/sendchat.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/sessions.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/special.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tools/__init__.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tools/command.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tools/command_interactive.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tools/context_manager.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tools/delete_block.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tools/delete_line.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tools/delete_lines.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tools/extract_lines.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tools/finished.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tools/git_branch.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tools/git_diff.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tools/git_log.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tools/git_remote.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tools/git_show.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tools/git_status.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tools/grep.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tools/indent_lines.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tools/insert_block.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tools/list_changes.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tools/load_skill.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tools/ls.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tools/remove_skill.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tools/replace_all.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tools/replace_line.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tools/replace_lines.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tools/replace_text.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tools/show_numbered_context.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tools/thinking.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tools/undo_change.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tools/update_todo_list.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tools/utils/base_tool.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tools/utils/helpers.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tools/utils/output.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tools/utils/registry.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tools/view_files_matching.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tools/view_files_with_symbol.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tui/__init__.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tui/app.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tui/io.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tui/styles.tcss +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tui/widgets/__init__.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tui/widgets/completion_bar.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tui/widgets/file_list.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tui/widgets/footer.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tui/widgets/input_area.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tui/widgets/key_hints.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tui/widgets/output.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tui/widgets/status_bar.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tui/worker.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/urls.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/utils.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/versioncheck.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/voice.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/waiting.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/watch.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/watch_prompts.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/Gemfile +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/_includes/blame.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/_includes/get-started.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/_includes/help-tip.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/_includes/help.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/_includes/install.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/_includes/keys.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/_includes/model-warnings.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/_includes/multi-line.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/_includes/python-m-aider.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/_includes/recording.css +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/_includes/recording.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/_includes/replit-pipx.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/_includes/works-best.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/_sass/custom/custom.scss +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/config/adv-model-settings.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/config/agent-mode.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/config/aider_conf.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/config/api-keys.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/config/custom-commands.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/config/custom-system-prompts.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/config/dotenv.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/config/editor.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/config/model-aliases.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/config/options.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/config/reasoning.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/config/skills.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/config/tui.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/config.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/faq.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/git.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/index.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/install/codespaces.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/install/docker.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/install/optional.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/install/replit.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/install.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/languages.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/legal/contributor-agreement.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/legal/privacy.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/llms/anthropic.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/llms/azure.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/llms/bedrock.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/llms/cohere.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/llms/deepseek.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/llms/gemini.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/llms/github.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/llms/groq.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/llms/lm-studio.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/llms/ollama.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/llms/openai-compat.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/llms/openai.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/llms/openrouter.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/llms/other.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/llms/vertex.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/llms/warnings.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/llms/xai.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/llms.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/more/analytics.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/more/edit-formats.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/more/infinite-output.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/more-info.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/recordings/auto-accept-architect.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/recordings/dont-drop-original-read-files.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/recordings/index.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/recordings/model-accepts-settings.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/recordings/tree-sitter-language-pack.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/repomap.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/scripting.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/sessions.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/troubleshooting/aider-not-found.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/troubleshooting/edit-errors.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/troubleshooting/imports.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/troubleshooting/models-and-keys.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/troubleshooting/support.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/troubleshooting/token-limits.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/troubleshooting/warnings.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/troubleshooting.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/usage/browser.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/usage/caching.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/usage/commands.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/usage/conventions.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/usage/copypaste.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/usage/images-urls.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/usage/lint-test.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/usage/modes.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/usage/not-code.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/usage/notifications.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/usage/tips.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/usage/tutorials.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/usage/voice.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/usage/watch.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/usage.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/share/index.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli_dev.egg-info/dependency_links.txt +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli_dev.egg-info/entry_points.txt +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli_dev.egg-info/requires.txt +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli_dev.egg-info/top_level.txt +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/docker/Dockerfile +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/docker/Dockerfile.local.nvidia.cuda.ubuntu +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/pyproject.toml +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/pytest.ini +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/requirements/common-constraints.txt +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/requirements/requirements-dev.in +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/requirements/requirements-dev.txt +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/requirements/requirements-help.in +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/requirements/requirements-help.txt +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/requirements/requirements-playwright.in +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/requirements/requirements-playwright.txt +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/requirements/requirements.in +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/requirements/tree-sitter.in +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/requirements.txt +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/scripts/30k-image.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/scripts/Dockerfile.jekyll +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/scripts/__init__.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/scripts/blame.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/scripts/clean_metadata.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/scripts/cost_analyzer.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/scripts/dl_icons.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/scripts/filter-chat-mode.js +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/scripts/generate_providers.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/scripts/get_contributor_list.js +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/scripts/history_prompts.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/scripts/homepage.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/scripts/issues.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/scripts/jekyll_build.sh +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/scripts/jekyll_run.sh +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/scripts/logo_svg.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/scripts/pip-compile.sh +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/scripts/recording_audio.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/scripts/redact-cast.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/scripts/rename_to_cecli.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/scripts/tmux_record.sh +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/scripts/tsl_pack_langs.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/scripts/update-blame.sh +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/scripts/update-docs.sh +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/scripts/update-history.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/scripts/versionbump.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/scripts/yank-old-versions.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/setup.cfg +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/shim.pyproject.toml +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/__init__.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/basic/__init__.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/basic/test_aws_credentials.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/basic/test_coder.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/basic/test_commands.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/basic/test_deprecated.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/basic/test_editblock.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/basic/test_editor.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/basic/test_exceptions.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/basic/test_find_or_blocks.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/basic/test_history.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/basic/test_io.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/basic/test_linter.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/basic/test_main.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/basic/test_model_info_manager.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/basic/test_model_provider_manager.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/basic/test_models.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/basic/test_onboarding.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/basic/test_plugin_manager.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/basic/test_prompts.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/basic/test_reasoning.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/basic/test_repo.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/basic/test_repomap.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/basic/test_run_cmd.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/basic/test_sanity_check_repo.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/basic/test_scripting.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/basic/test_sendchat.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/basic/test_sessions.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/basic/test_skills.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/basic/test_special.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/basic/test_ssl_verification.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/basic/test_udiff.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/basic/test_urls.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/basic/test_voice.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/basic/test_watch.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/basic/test_wholefile.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/coders/test_copypaste_coder.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/conftest.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/chat-history-search-replace-gold.txt +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/chat-history.md +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/arduino/test.ino +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/c/test.c +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/chatito/test.chatito +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/clojure/test.clj +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/commonlisp/test.lisp +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/cpp/test.cpp +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/csharp/test.cs +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/d/test.d +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/dart/test.dart +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/elisp/test.el +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/elixir/test.ex +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/elm/test.elm +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/gleam/test.gleam +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/go/test.go +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/haskell/test.hs +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/hcl/test.tf +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/java/test.java +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/javascript/test.js +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/kotlin/test.kt +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/lua/test.lua +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/matlab/test.m +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/ocaml/test.ml +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/ocaml_interface/test.mli +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/php/test.php +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/pony/test.pony +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/properties/test.properties +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/python/test.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/ql/test.ql +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/r/test.r +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/racket/test.rkt +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/ruby/test.rb +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/rust/test.rs +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/scala/test.scala +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/solidity/test.sol +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/swift/test.swift +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/tsx/test.tsx +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/typescript/test.ts +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/udev/test.rules +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/zig/test.zig +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/sample-code-base/sample.js +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/sample-code-base/sample.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/sample-code-base-repo-map.txt +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/watch.js +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/watch.lisp +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/watch.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/watch_question.js +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/help/test_help.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/scrape/test_playwright_disable.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/scrape/test_scrape.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/tools/test_git_branch.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/tools/test_git_diff.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/tools/test_grep.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/tools/test_insert_block.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/tools/test_registry.py +0 -0
- {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/tools/test_show_numbered_context.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: cecli-dev
|
|
3
|
-
Version: 0.95.
|
|
3
|
+
Version: 0.95.10
|
|
4
4
|
Summary: we also can't pronounce cecli
|
|
5
5
|
Project-URL: Homepage, https://github.com/dwash96/cecli
|
|
6
6
|
Project-URL: Documentation, https://github.com/dwash96/cecli
|
|
@@ -230,6 +230,7 @@ The current priorities are to improve core capabilities and user experience of t
|
|
|
230
230
|
4. **Context Delivery** - [Discussion](https://github.com/dwash96/cecli/issues/47)
|
|
231
231
|
* [ ] Use workflow for internal discovery to better target file snippets needed for specific tasks
|
|
232
232
|
* [ ] Add support for partial files and code snippets in model completion messages
|
|
233
|
+
* [ ] Update message request structure for optimal caching
|
|
233
234
|
|
|
234
235
|
5. **TUI Experience** - [Discussion](https://github.com/dwash96/cecli/issues/48)
|
|
235
236
|
* [x] Add a full TUI (probably using textual) to have a visual interface competitive with the other coding agent terminal programs
|
|
@@ -241,8 +242,8 @@ The current priorities are to improve core capabilities and user experience of t
|
|
|
241
242
|
* [x] Add an explicit "finished" internal tool
|
|
242
243
|
* [x] Add a configuration json setting for agent mode to specify allowed local tools to use, tool call limits, etc.
|
|
243
244
|
* [ ] Add a RAG tool for the model to ask questions about the codebase
|
|
244
|
-
* [
|
|
245
|
-
* [
|
|
245
|
+
* [x] Make the system prompts more aggressive about removing unneeded files/content from the context
|
|
246
|
+
* [x] Add a plugin-like system for allowing agent mode to use user-defined tools in simple python files
|
|
246
247
|
* [x] Add a dynamic tool discovery tool to allow the system to have only the tools it needs in context
|
|
247
248
|
|
|
248
249
|
### All Contributors (Both Cecli and Aider main)
|
|
@@ -146,6 +146,7 @@ The current priorities are to improve core capabilities and user experience of t
|
|
|
146
146
|
4. **Context Delivery** - [Discussion](https://github.com/dwash96/cecli/issues/47)
|
|
147
147
|
* [ ] Use workflow for internal discovery to better target file snippets needed for specific tasks
|
|
148
148
|
* [ ] Add support for partial files and code snippets in model completion messages
|
|
149
|
+
* [ ] Update message request structure for optimal caching
|
|
149
150
|
|
|
150
151
|
5. **TUI Experience** - [Discussion](https://github.com/dwash96/cecli/issues/48)
|
|
151
152
|
* [x] Add a full TUI (probably using textual) to have a visual interface competitive with the other coding agent terminal programs
|
|
@@ -157,8 +158,8 @@ The current priorities are to improve core capabilities and user experience of t
|
|
|
157
158
|
* [x] Add an explicit "finished" internal tool
|
|
158
159
|
* [x] Add a configuration json setting for agent mode to specify allowed local tools to use, tool call limits, etc.
|
|
159
160
|
* [ ] Add a RAG tool for the model to ask questions about the codebase
|
|
160
|
-
* [
|
|
161
|
-
* [
|
|
161
|
+
* [x] Make the system prompts more aggressive about removing unneeded files/content from the context
|
|
162
|
+
* [x] Add a plugin-like system for allowing agent mode to use user-defined tools in simple python files
|
|
162
163
|
* [x] Add a dynamic tool discovery tool to allow the system to have only the tools it needs in context
|
|
163
164
|
|
|
164
165
|
### All Contributors (Both Cecli and Aider main)
|
|
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
|
|
|
28
28
|
commit_id: COMMIT_ID
|
|
29
29
|
__commit_id__: COMMIT_ID
|
|
30
30
|
|
|
31
|
-
__version__ = version = '0.95.
|
|
32
|
-
__version_tuple__ = version_tuple = (0, 95,
|
|
31
|
+
__version__ = version = '0.95.10'
|
|
32
|
+
__version_tuple__ = version_tuple = (0, 95, 10)
|
|
33
33
|
|
|
34
|
-
__commit_id__ = commit_id = '
|
|
34
|
+
__commit_id__ = commit_id = 'gf1225144f'
|
|
@@ -1330,14 +1330,24 @@ class Coder:
|
|
|
1330
1330
|
await self.io.input_task
|
|
1331
1331
|
user_message = self.io.input_task.result()
|
|
1332
1332
|
|
|
1333
|
-
if
|
|
1333
|
+
if (
|
|
1334
|
+
self.args
|
|
1335
|
+
and not self.args.tui
|
|
1336
|
+
and self.show_pretty()
|
|
1337
|
+
and self.args.fancy_input
|
|
1338
|
+
):
|
|
1334
1339
|
self.io.tool_output("Processing...\n")
|
|
1335
1340
|
|
|
1336
1341
|
self.io.output_task = asyncio.create_task(self.generate(user_message, preproc))
|
|
1337
1342
|
|
|
1338
1343
|
await self.io.output_task
|
|
1339
1344
|
|
|
1340
|
-
if
|
|
1345
|
+
if (
|
|
1346
|
+
self.args
|
|
1347
|
+
and not self.args.tui
|
|
1348
|
+
and self.show_pretty()
|
|
1349
|
+
and self.args.fancy_input
|
|
1350
|
+
):
|
|
1341
1351
|
self.io.tool_output("Finished.")
|
|
1342
1352
|
|
|
1343
1353
|
self.io.ring_bell()
|
|
@@ -2766,7 +2776,7 @@ class Coder:
|
|
|
2766
2776
|
return None
|
|
2767
2777
|
|
|
2768
2778
|
async def get_all_server_tools():
|
|
2769
|
-
tasks = [get_server_tools(server) for server in self.mcp_manager]
|
|
2779
|
+
tasks = [get_server_tools(server) for server in self.mcp_manager if server.is_enabled]
|
|
2770
2780
|
results = await asyncio.gather(*tasks)
|
|
2771
2781
|
return [result for result in results if result is not None]
|
|
2772
2782
|
|
|
@@ -65,7 +65,13 @@ class AddCommand(BaseCommand):
|
|
|
65
65
|
io.tool_output(f"You can add to git with: /git add {fname}")
|
|
66
66
|
continue
|
|
67
67
|
|
|
68
|
-
|
|
68
|
+
confirm_fname = os.path.relpath(fname)
|
|
69
|
+
if len(confirm_fname) > 64:
|
|
70
|
+
confirm_fname = f".../{os.path.basename(confirm_fname)}"
|
|
71
|
+
|
|
72
|
+
if await io.confirm_ask(
|
|
73
|
+
f"No files matched '{confirm_fname}'. Do you want to create this file?"
|
|
74
|
+
):
|
|
69
75
|
try:
|
|
70
76
|
fname.parent.mkdir(parents=True, exist_ok=True)
|
|
71
77
|
fname.touch()
|
|
@@ -1,8 +1,34 @@
|
|
|
1
|
-
from abc import ABC, abstractmethod
|
|
1
|
+
from abc import ABC, ABCMeta, abstractmethod
|
|
2
2
|
from typing import List
|
|
3
3
|
|
|
4
4
|
|
|
5
|
-
class
|
|
5
|
+
class CommandMeta(ABCMeta):
|
|
6
|
+
"""Metaclass for validating command classes at definition time."""
|
|
7
|
+
|
|
8
|
+
def __new__(mcs, name, bases, namespace):
|
|
9
|
+
# Create the class first
|
|
10
|
+
cls = super().__new__(mcs, name, bases, namespace)
|
|
11
|
+
|
|
12
|
+
# Skip validation for BaseCommand itself
|
|
13
|
+
if name == "BaseCommand":
|
|
14
|
+
return cls
|
|
15
|
+
|
|
16
|
+
if not name.endswith("Command"):
|
|
17
|
+
raise TypeError(f"Command class must end with 'Command', got '{name}'")
|
|
18
|
+
|
|
19
|
+
if getattr(cls, "NORM_NAME", None) is None:
|
|
20
|
+
raise TypeError("Command class must define NORM_NAME")
|
|
21
|
+
|
|
22
|
+
if getattr(cls, "DESCRIPTION", None) is None:
|
|
23
|
+
raise TypeError("Command class must define DESCRIPTION")
|
|
24
|
+
|
|
25
|
+
if "execute" not in namespace:
|
|
26
|
+
raise TypeError("Command class must implement execute method")
|
|
27
|
+
|
|
28
|
+
return cls
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
class BaseCommand(ABC, metaclass=CommandMeta):
|
|
6
32
|
"""Abstract base class for all commands."""
|
|
7
33
|
|
|
8
34
|
# Class properties (similar to BaseTool)
|
|
@@ -42,6 +42,7 @@ from rich.text import Text
|
|
|
42
42
|
|
|
43
43
|
from cecli.commands import SwitchCoderSignal
|
|
44
44
|
from cecli.helpers import coroutines
|
|
45
|
+
from cecli.report import update_error_prefix
|
|
45
46
|
|
|
46
47
|
from .dump import dump # noqa: F401
|
|
47
48
|
from .editor import pipe_editor
|
|
@@ -1039,14 +1040,22 @@ class InputOutput:
|
|
|
1039
1040
|
await output_task
|
|
1040
1041
|
except (
|
|
1041
1042
|
asyncio.CancelledError,
|
|
1042
|
-
Exception,
|
|
1043
1043
|
EOFError,
|
|
1044
|
-
IndexError,
|
|
1045
|
-
RuntimeError,
|
|
1046
1044
|
SystemExit,
|
|
1047
1045
|
SwitchCoderSignal,
|
|
1048
1046
|
):
|
|
1049
1047
|
pass
|
|
1048
|
+
except (
|
|
1049
|
+
Exception,
|
|
1050
|
+
IndexError,
|
|
1051
|
+
RuntimeError,
|
|
1052
|
+
):
|
|
1053
|
+
import traceback
|
|
1054
|
+
|
|
1055
|
+
traceback_str = traceback.format_exc()
|
|
1056
|
+
update_error_prefix(traceback_str)
|
|
1057
|
+
update_error_prefix(str(output_task))
|
|
1058
|
+
pass
|
|
1050
1059
|
|
|
1051
1060
|
async def stop_task_streams(self):
|
|
1052
1061
|
input_task = asyncio.create_task(self.stop_input_task())
|
|
@@ -976,6 +976,9 @@ async def main_async(argv=None, input=None, output=None, force_git_root=None, re
|
|
|
976
976
|
ratio = args.context_compaction_max_tokens
|
|
977
977
|
if max_input_tokens:
|
|
978
978
|
args.context_compaction_max_tokens = int(max_input_tokens * ratio)
|
|
979
|
+
else:
|
|
980
|
+
# Default since some models do not have max_input_tokens specified somehow
|
|
981
|
+
args.context_compaction_max_tokens = 65536
|
|
979
982
|
try:
|
|
980
983
|
mcp_servers = load_mcp_servers(
|
|
981
984
|
args.mcp_servers, args.mcp_servers_file, io, args.verbose, args.mcp_transport
|
|
@@ -22,14 +22,14 @@ class McpServerManager:
|
|
|
22
22
|
Initialize the MCP server manager.
|
|
23
23
|
|
|
24
24
|
Args:
|
|
25
|
-
|
|
26
|
-
mcp_servers_file: Path to a JSON file containing MCP server configurations
|
|
25
|
+
servers: List of MCP Servers to manage
|
|
27
26
|
io: InputOutput instance for user interaction
|
|
28
27
|
verbose: Whether to output verbose logging
|
|
29
28
|
"""
|
|
30
29
|
self.io = io
|
|
31
30
|
self.verbose = verbose
|
|
32
31
|
self._servers = servers
|
|
32
|
+
|
|
33
33
|
self._server_tools: dict[str, list] = {} # Maps server name to its tools
|
|
34
34
|
self._connected_servers: set[McpServer] = set()
|
|
35
35
|
|
|
@@ -74,7 +74,7 @@ class McpServerManager:
|
|
|
74
74
|
return None
|
|
75
75
|
|
|
76
76
|
async def connect_all(self) -> None:
|
|
77
|
-
"""Connect to all MCP servers."""
|
|
77
|
+
"""Connect to all MCP servers while skipping ones that are not enabled."""
|
|
78
78
|
if self.is_connected:
|
|
79
79
|
self._log_verbose("Some MCP servers already connected")
|
|
80
80
|
return
|
|
@@ -93,7 +93,9 @@ class McpServerManager:
|
|
|
93
93
|
self._log_error(f"Failed to connect to MCP server {server.name}: {e}")
|
|
94
94
|
return (server, False)
|
|
95
95
|
|
|
96
|
-
results = await asyncio.gather(
|
|
96
|
+
results = await asyncio.gather(
|
|
97
|
+
*[connect_server(server) for server in self._servers if server.is_enabled]
|
|
98
|
+
)
|
|
97
99
|
|
|
98
100
|
for server, success in results:
|
|
99
101
|
if success:
|
|
@@ -142,6 +144,10 @@ class McpServerManager:
|
|
|
142
144
|
self._log_warning(f"MCP server not found: {name}")
|
|
143
145
|
return False
|
|
144
146
|
|
|
147
|
+
if not server.is_enabled:
|
|
148
|
+
self._log_verbose("MCP is not enabled.")
|
|
149
|
+
return False
|
|
150
|
+
|
|
145
151
|
if server in self._connected_servers:
|
|
146
152
|
self._log_verbose(f"MCP server already connected: {name}")
|
|
147
153
|
return True
|
|
@@ -39,6 +39,7 @@ class McpServer:
|
|
|
39
39
|
"""
|
|
40
40
|
self.config = server_config
|
|
41
41
|
self.name = server_config.get("name", "unnamed-server")
|
|
42
|
+
self.is_enabled = server_config.get("enabled", True)
|
|
42
43
|
self.io = io
|
|
43
44
|
self.verbose = verbose
|
|
44
45
|
self.session = None
|
|
@@ -52,8 +53,13 @@ class McpServer:
|
|
|
52
53
|
Otherwise, establishes a new connection and initializes the session.
|
|
53
54
|
|
|
54
55
|
Returns:
|
|
55
|
-
ClientSession: The active session
|
|
56
|
+
ClientSession: The active session if mcp is not disabled
|
|
56
57
|
"""
|
|
58
|
+
if not self.is_enabled:
|
|
59
|
+
if self.verbose and self.io:
|
|
60
|
+
self.io.tool_output(f"Enabled option is set to false for MCP server: {self.name}")
|
|
61
|
+
return None
|
|
62
|
+
|
|
57
63
|
if self.session is not None:
|
|
58
64
|
if self.verbose and self.io:
|
|
59
65
|
self.io.tool_output(f"Using existing session for MCP server: {self.name}")
|
|
@@ -123,7 +129,8 @@ class HttpBasedMcpServer(McpServer):
|
|
|
123
129
|
existing_redirect_uri = redirect_uris[0]
|
|
124
130
|
if self.verbose and self.io:
|
|
125
131
|
self.io.tool_output(
|
|
126
|
-
f"Found existing redirect URI: {existing_redirect_uri}",
|
|
132
|
+
f"Found existing redirect URI: {existing_redirect_uri}",
|
|
133
|
+
log_only=True,
|
|
127
134
|
)
|
|
128
135
|
|
|
129
136
|
from .utils import find_available_port
|
|
@@ -187,6 +194,11 @@ class HttpBasedMcpServer(McpServer):
|
|
|
187
194
|
raise NotImplementedError("Subclasses must implement _create_transport")
|
|
188
195
|
|
|
189
196
|
async def connect(self):
|
|
197
|
+
if not self.is_enabled:
|
|
198
|
+
if self.verbose and self.io:
|
|
199
|
+
self.io.tool_output(f"Enabled option is set to false for MCP server: {self.name}")
|
|
200
|
+
return None
|
|
201
|
+
|
|
190
202
|
if self.session is not None:
|
|
191
203
|
if self.verbose and self.io:
|
|
192
204
|
self.io.tool_output(f"Using existing session for {self.name}")
|
|
@@ -12,6 +12,7 @@ from cecli.versioncheck import VERSION_CHECK_FNAME
|
|
|
12
12
|
|
|
13
13
|
# Global variable to store resolved args data for error reporting
|
|
14
14
|
resolved_args_data = None
|
|
15
|
+
error_prefix = []
|
|
15
16
|
|
|
16
17
|
FENCE = "`" * 3
|
|
17
18
|
|
|
@@ -68,10 +69,11 @@ def format_args_for_reporting(args):
|
|
|
68
69
|
pass
|
|
69
70
|
|
|
70
71
|
# Format the output line by line
|
|
71
|
-
lines = ["Configuration
|
|
72
|
+
lines = ["Configuration:\n```yaml"]
|
|
72
73
|
for key, value in sorted(args_dict.items()):
|
|
73
74
|
lines.append(f"{key}: {value}")
|
|
74
75
|
|
|
76
|
+
lines.append("```")
|
|
75
77
|
return "\n".join(lines)
|
|
76
78
|
|
|
77
79
|
|
|
@@ -85,6 +87,17 @@ def set_args_error_data(args):
|
|
|
85
87
|
resolved_args_data = args
|
|
86
88
|
|
|
87
89
|
|
|
90
|
+
def get_error_prefix():
|
|
91
|
+
global error_prefix
|
|
92
|
+
return error_prefix
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
def update_error_prefix(prefix):
|
|
96
|
+
global error_prefix
|
|
97
|
+
error_prefix.append(f"{prefix}\n")
|
|
98
|
+
error_prefix = error_prefix[-10:]
|
|
99
|
+
|
|
100
|
+
|
|
88
101
|
def report_github_issue(issue_text, title=None, confirm=True):
|
|
89
102
|
"""
|
|
90
103
|
Compose a URL to open a new GitHub issue with the given text prefilled,
|
|
@@ -102,6 +115,7 @@ def report_github_issue(issue_text, title=None, confirm=True):
|
|
|
102
115
|
os_info = get_os_info() + "\n"
|
|
103
116
|
git_info = get_git_info() + "\n"
|
|
104
117
|
args_info = format_args_for_reporting(get_args_error_data()) + "\n"
|
|
118
|
+
prefix_info = "".join(get_error_prefix())
|
|
105
119
|
|
|
106
120
|
system_info = (
|
|
107
121
|
version_info
|
|
@@ -111,6 +125,8 @@ def report_github_issue(issue_text, title=None, confirm=True):
|
|
|
111
125
|
+ os_info
|
|
112
126
|
+ git_info
|
|
113
127
|
+ "\n"
|
|
128
|
+
+ prefix_info
|
|
129
|
+
+ "\n"
|
|
114
130
|
+ args_info
|
|
115
131
|
+ "\n"
|
|
116
132
|
)
|
|
@@ -123,11 +139,13 @@ def report_github_issue(issue_text, title=None, confirm=True):
|
|
|
123
139
|
issue_url = f"{github_issues}?{urllib.parse.urlencode(params)}"
|
|
124
140
|
|
|
125
141
|
if confirm:
|
|
126
|
-
print(f"\n# {title}\n")
|
|
127
|
-
print(issue_text.strip())
|
|
128
|
-
print()
|
|
142
|
+
# print(f"\n# {title}\n")
|
|
143
|
+
# print(issue_text.strip())
|
|
144
|
+
# print()
|
|
129
145
|
print("Please consider reporting this bug to help improve cecli!")
|
|
130
|
-
prompt =
|
|
146
|
+
prompt = (
|
|
147
|
+
"Open a GitHub Issue pre-filled with the above error messages in your browser? (Y/n) "
|
|
148
|
+
)
|
|
131
149
|
confirmation = input(prompt).strip().lower()
|
|
132
150
|
|
|
133
151
|
yes = not confirmation or confirmation.startswith("y")
|
|
@@ -59,6 +59,10 @@ mcp-servers-file: /path/to/mcp.json
|
|
|
59
59
|
|
|
60
60
|
These options are configurable in any of Aider's config file formats.
|
|
61
61
|
|
|
62
|
+
Also, you are able to say if you would like an mcp enabled/disabled in the config itself via `"enabled"` key
|
|
63
|
+
By default MCP servers are enabled, so you MUST explicitly disable them in the config if you dont wish
|
|
64
|
+
for them to be included when cecli starts up
|
|
65
|
+
|
|
62
66
|
### Flags
|
|
63
67
|
|
|
64
68
|
You can specify MCP servers directly on the command line using the `--mcp-servers` option with a JSON or YAML string:
|
|
@@ -204,7 +208,7 @@ mcp-servers:
|
|
|
204
208
|
"-i",
|
|
205
209
|
"--rm",
|
|
206
210
|
"-e",
|
|
207
|
-
"GITHUB_PERSONAL_ACCESS_TOKEN=<access_token>",
|
|
211
|
+
"GITHUB_PERSONAL_ACCESS_TOKEN=<access_token>",
|
|
208
212
|
"ghcr.io/github/github-mcp-server"
|
|
209
213
|
]
|
|
210
214
|
```
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: cecli-dev
|
|
3
|
-
Version: 0.95.
|
|
3
|
+
Version: 0.95.10
|
|
4
4
|
Summary: we also can't pronounce cecli
|
|
5
5
|
Project-URL: Homepage, https://github.com/dwash96/cecli
|
|
6
6
|
Project-URL: Documentation, https://github.com/dwash96/cecli
|
|
@@ -230,6 +230,7 @@ The current priorities are to improve core capabilities and user experience of t
|
|
|
230
230
|
4. **Context Delivery** - [Discussion](https://github.com/dwash96/cecli/issues/47)
|
|
231
231
|
* [ ] Use workflow for internal discovery to better target file snippets needed for specific tasks
|
|
232
232
|
* [ ] Add support for partial files and code snippets in model completion messages
|
|
233
|
+
* [ ] Update message request structure for optimal caching
|
|
233
234
|
|
|
234
235
|
5. **TUI Experience** - [Discussion](https://github.com/dwash96/cecli/issues/48)
|
|
235
236
|
* [x] Add a full TUI (probably using textual) to have a visual interface competitive with the other coding agent terminal programs
|
|
@@ -241,8 +242,8 @@ The current priorities are to improve core capabilities and user experience of t
|
|
|
241
242
|
* [x] Add an explicit "finished" internal tool
|
|
242
243
|
* [x] Add a configuration json setting for agent mode to specify allowed local tools to use, tool call limits, etc.
|
|
243
244
|
* [ ] Add a RAG tool for the model to ask questions about the codebase
|
|
244
|
-
* [
|
|
245
|
-
* [
|
|
245
|
+
* [x] Make the system prompts more aggressive about removing unneeded files/content from the context
|
|
246
|
+
* [x] Add a plugin-like system for allowing agent mode to use user-defined tools in simple python files
|
|
246
247
|
* [x] Add a dynamic tool discovery tool to allow the system to have only the tools it needs in context
|
|
247
248
|
|
|
248
249
|
### All Contributors (Both Cecli and Aider main)
|
|
@@ -463,6 +463,7 @@ tests/basic/__init__.py
|
|
|
463
463
|
tests/basic/test_aws_credentials.py
|
|
464
464
|
tests/basic/test_coder.py
|
|
465
465
|
tests/basic/test_commands.py
|
|
466
|
+
tests/basic/test_custom_commands.py
|
|
466
467
|
tests/basic/test_deprecated.py
|
|
467
468
|
tests/basic/test_editblock.py
|
|
468
469
|
tests/basic/test_editor.py
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import pytest
|
|
2
|
+
|
|
3
|
+
from cecli.commands.utils.base_command import BaseCommand
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class TestCommandMeta:
|
|
7
|
+
"""Tests for the CommandMeta metaclass validation."""
|
|
8
|
+
|
|
9
|
+
def test_valid_custom_command_is_accepted(self):
|
|
10
|
+
"""Test that a valid custom command class is accepted."""
|
|
11
|
+
|
|
12
|
+
class CustomCommand(BaseCommand):
|
|
13
|
+
NORM_NAME = "custom"
|
|
14
|
+
DESCRIPTION = "A valid custom command"
|
|
15
|
+
|
|
16
|
+
@classmethod
|
|
17
|
+
async def execute(cls, io, coder, args, **kwargs):
|
|
18
|
+
pass
|
|
19
|
+
|
|
20
|
+
# If we get here without exception, the test passes
|
|
21
|
+
assert CustomCommand.NORM_NAME == "custom"
|
|
22
|
+
assert CustomCommand.DESCRIPTION == "A valid custom command"
|
|
23
|
+
|
|
24
|
+
def test_class_name_must_end_with_command(self):
|
|
25
|
+
"""Test that class name must end with 'Command'."""
|
|
26
|
+
with pytest.raises(TypeError, match="Command class must end with 'Command'"):
|
|
27
|
+
|
|
28
|
+
class Custom(BaseCommand):
|
|
29
|
+
NORM_NAME = "custom"
|
|
30
|
+
DESCRIPTION = "An invalid custom command"
|
|
31
|
+
|
|
32
|
+
@classmethod
|
|
33
|
+
async def execute(cls, io, coder, args, **kwargs):
|
|
34
|
+
pass
|
|
35
|
+
|
|
36
|
+
def test_must_define_norm_name(self):
|
|
37
|
+
"""Test that NORM_NAME must be defined."""
|
|
38
|
+
with pytest.raises(TypeError, match="Command class must define NORM_NAME"):
|
|
39
|
+
|
|
40
|
+
class CustomCommand(BaseCommand):
|
|
41
|
+
DESCRIPTION = "Missing NORM_NAME"
|
|
42
|
+
|
|
43
|
+
@classmethod
|
|
44
|
+
async def execute(cls, io, coder, args, **kwargs):
|
|
45
|
+
pass
|
|
46
|
+
|
|
47
|
+
def test_must_define_description(self):
|
|
48
|
+
"""Test that DESCRIPTION must be defined."""
|
|
49
|
+
with pytest.raises(TypeError, match="Command class must define DESCRIPTION"):
|
|
50
|
+
|
|
51
|
+
class CustomCommand(BaseCommand):
|
|
52
|
+
NORM_NAME = "custom"
|
|
53
|
+
|
|
54
|
+
@classmethod
|
|
55
|
+
async def execute(cls, io, coder, args, **kwargs):
|
|
56
|
+
pass
|
|
57
|
+
|
|
58
|
+
def test_must_implement_execute_method(self):
|
|
59
|
+
"""Test that execute method must be implemented."""
|
|
60
|
+
with pytest.raises(TypeError, match="Command class must implement execute method"):
|
|
61
|
+
|
|
62
|
+
class CustomCommand(BaseCommand):
|
|
63
|
+
NORM_NAME = "custom"
|
|
64
|
+
DESCRIPTION = "Missing execute method"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|