cecli-dev 0.95.8__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.8 → cecli_dev-0.95.10}/PKG-INFO +5 -3
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/README.md +3 -2
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/__init__.py +1 -1
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/_version.py +3 -3
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/args.py +0 -6
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/coders/agent_coder.py +11 -10
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/coders/base_coder.py +32 -17
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/add.py +7 -1
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/core.py +4 -4
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/exit.py +0 -8
- cecli_dev-0.95.10/cecli/commands/history_search.py +112 -0
- cecli_dev-0.95.10/cecli/commands/terminal_setup.py +759 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/utils/base_command.py +28 -2
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/helpers/model_providers.py +4 -3
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/io.py +13 -4
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/main.py +59 -51
- cecli_dev-0.95.10/cecli/mcp/__init__.py +14 -0
- cecli_dev-0.95.10/cecli/mcp/manager.py +255 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/mcp/oauth.py +0 -25
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/mcp/server.py +29 -6
- cecli_dev-0.95.8/cecli/mcp/__init__.py → cecli_dev-0.95.10/cecli/mcp/utils.py +32 -2
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/onboarding.py +1 -1
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/report.py +23 -5
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tui/app.py +14 -1
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tui/widgets/completion_bar.py +1 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tui/widgets/input_area.py +4 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tui/widgets/output.py +19 -6
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/utils.py +9 -6
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/versioncheck.py +5 -1
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/config/mcp.md +5 -1
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/config/tui.md +8 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli_dev.egg-info/PKG-INFO +5 -3
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli_dev.egg-info/SOURCES.txt +3 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli_dev.egg-info/requires.txt +3 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/requirements/requirements.in +1 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/basic/test_coder.py +38 -23
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/basic/test_commands.py +132 -124
- cecli_dev-0.95.10/tests/basic/test_custom_commands.py +64 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/basic/test_main.py +16 -9
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/basic/test_model_provider_manager.py +17 -4
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/basic/test_sessions.py +5 -5
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/scrape/test_scrape.py +1 -1
- cecli_dev-0.95.8/cecli/commands/history_search.py +0 -40
- cecli_dev-0.95.8/cecli/commands/terminal_setup.py +0 -365
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/.dockerignore +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/.flake8 +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/.gitattributes +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/.github/ISSUE_TEMPLATE/issue.yml +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/.github/workflows/check_pypi_version.yml +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/.github/workflows/docker-build-test.yml +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/.github/workflows/docker-release.yml +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/.github/workflows/issues.yml +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/.github/workflows/pages.yml +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/.github/workflows/pre-commit.yml +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/.github/workflows/release.yml +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/.github/workflows/ubuntu-tests.yml +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/.github/workflows/windows-tests.yml +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/.github/workflows/windows_check_pypi_version.yml +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/.gitignore +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/.pre-commit-config.yaml +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/CHANGELOG.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/CNAME +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/CONTRIBUTING.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/HISTORY.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/LICENSE.txt +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/MANIFEST.in +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/benchmark/Dockerfile +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/benchmark/README.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/benchmark/__init__.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/benchmark/benchmark.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/benchmark/benchmark_classic.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/benchmark/clone-exercism.sh +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/benchmark/cpp-test.sh +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/benchmark/docker.sh +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/benchmark/docker_build.sh +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/benchmark/install-docker-ubuntu.sh +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/benchmark/npm-test.sh +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/benchmark/over_time.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/benchmark/plot.sh +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/benchmark/plots.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/benchmark/problem_stats.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/benchmark/prompts.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/benchmark/refactor_tools.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/benchmark/rsync.sh +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/benchmark/rungrid.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/benchmark/swe-bench-lite.txt +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/benchmark/swe-bench.txt +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/benchmark/swe_bench.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/benchmark/test_benchmark.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/__main__.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/args_formatter.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/change_tracker.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/coders/__init__.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/coders/architect_coder.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/coders/ask_coder.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/coders/chat_chunks.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/coders/context_coder.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/coders/copypaste_coder.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/coders/editblock_coder.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/coders/editblock_fenced_coder.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/coders/editblock_func_coder.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/coders/editor_diff_fenced_coder.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/coders/editor_editblock_coder.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/coders/editor_whole_coder.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/coders/help_coder.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/coders/patch_coder.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/coders/search_replace.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/coders/shell.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/coders/single_wholefile_func_coder.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/coders/udiff_coder.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/coders/udiff_simple.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/coders/wholefile_coder.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/coders/wholefile_func_coder.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/__init__.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/agent.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/architect.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/ask.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/chat_mode.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/clear.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/code.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/command_prefix.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/commit.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/context.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/context_blocks.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/context_management.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/copy.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/copy_context.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/diff.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/drop.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/editor.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/git.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/help.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/lint.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/list_sessions.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/load.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/load_session.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/load_skill.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/ls.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/map.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/map_refresh.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/model.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/models.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/multiline_mode.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/paste.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/quit.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/read_only.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/read_only_stub.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/reasoning_effort.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/remove_skill.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/report.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/reset.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/run.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/save.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/save_session.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/settings.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/test.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/think_tokens.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/tokens.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/undo.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/utils/__init__.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/utils/helpers.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/utils/registry.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/utils/save_load_manager.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/voice.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/weak_model.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/web.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/deprecated_args.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/diffs.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/dump.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/editor.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/exceptions.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/format_settings.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/help.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/help_pats.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/helpers/__init__.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/helpers/copypaste.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/helpers/coroutines.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/helpers/file_searcher.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/helpers/nested.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/helpers/plugin_manager.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/helpers/profiler.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/helpers/requests.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/helpers/similarity.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/helpers/skills.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/history.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/linter.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/llm.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/mdstream.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/models.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/prompts/__init__.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/prompts/agent.yml +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/prompts/architect.yml +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/prompts/ask.yml +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/prompts/base.yml +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/prompts/context.yml +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/prompts/copypaste.yml +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/prompts/editblock.yml +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/prompts/editblock_fenced.yml +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/prompts/editblock_func.yml +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/prompts/editor_diff_fenced.yml +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/prompts/editor_editblock.yml +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/prompts/editor_whole.yml +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/prompts/help.yml +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/prompts/patch.yml +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/prompts/single_wholefile_func.yml +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/prompts/udiff.yml +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/prompts/udiff_simple.yml +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/prompts/utils/__init__.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/prompts/utils/registry.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/prompts/utils/system.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/prompts/wholefile.yml +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/prompts/wholefile_func.yml +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/README.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/arduino-tags.scm +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/c-tags.scm +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/chatito-tags.scm +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/clojure-tags.scm +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/commonlisp-tags.scm +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/cpp-tags.scm +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/csharp-tags.scm +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/d-tags.scm +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/dart-tags.scm +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/elisp-tags.scm +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/elixir-tags.scm +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/elm-tags.scm +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/gleam-tags.scm +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/go-tags.scm +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/java-tags.scm +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/javascript-tags.scm +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/lua-tags.scm +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/matlab-tags.scm +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/ocaml-tags.scm +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/ocaml_interface-tags.scm +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/pony-tags.scm +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/properties-tags.scm +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/python-tags.scm +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/r-tags.scm +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/racket-tags.scm +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/ruby-tags.scm +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/rust-tags.scm +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/solidity-tags.scm +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/swift-tags.scm +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/udev-tags.scm +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/README.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/c-tags.scm +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/c_sharp-tags.scm +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/cpp-tags.scm +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/dart-tags.scm +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/elisp-tags.scm +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/elixir-tags.scm +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/elm-tags.scm +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/fortran-tags.scm +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/go-tags.scm +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/haskell-tags.scm +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/hcl-tags.scm +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/java-tags.scm +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/javascript-tags.scm +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/julia-tags.scm +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/kotlin-tags.scm +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/matlab-tags.scm +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/ocaml-tags.scm +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/ocaml_interface-tags.scm +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/php-tags.scm +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/python-tags.scm +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/ql-tags.scm +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/ruby-tags.scm +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/rust-tags.scm +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/scala-tags.scm +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/typescript-tags.scm +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/zig-tags.scm +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/reasoning_tags.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/repo.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/repomap.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/resources/__init__.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/resources/model-metadata.json +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/resources/model-settings.yml +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/resources/providers.json +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/run_cmd.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/scrape.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/sendchat.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/sessions.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/special.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tools/__init__.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tools/command.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tools/command_interactive.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tools/context_manager.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tools/delete_block.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tools/delete_line.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tools/delete_lines.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tools/extract_lines.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tools/finished.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tools/git_branch.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tools/git_diff.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tools/git_log.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tools/git_remote.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tools/git_show.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tools/git_status.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tools/grep.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tools/indent_lines.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tools/insert_block.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tools/list_changes.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tools/load_skill.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tools/ls.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tools/remove_skill.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tools/replace_all.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tools/replace_line.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tools/replace_lines.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tools/replace_text.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tools/show_numbered_context.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tools/thinking.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tools/undo_change.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tools/update_todo_list.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tools/utils/base_tool.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tools/utils/helpers.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tools/utils/output.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tools/utils/registry.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tools/view_files_matching.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tools/view_files_with_symbol.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tui/__init__.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tui/io.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tui/styles.tcss +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tui/widgets/__init__.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tui/widgets/file_list.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tui/widgets/footer.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tui/widgets/key_hints.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tui/widgets/status_bar.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tui/worker.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/urls.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/voice.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/waiting.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/watch.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/watch_prompts.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/Gemfile +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/_includes/blame.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/_includes/get-started.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/_includes/help-tip.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/_includes/help.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/_includes/install.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/_includes/keys.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/_includes/model-warnings.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/_includes/multi-line.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/_includes/python-m-aider.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/_includes/recording.css +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/_includes/recording.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/_includes/replit-pipx.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/_includes/works-best.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/_sass/custom/custom.scss +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/config/adv-model-settings.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/config/agent-mode.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/config/aider_conf.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/config/api-keys.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/config/custom-commands.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/config/custom-system-prompts.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/config/dotenv.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/config/editor.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/config/model-aliases.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/config/options.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/config/reasoning.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/config/skills.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/config.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/faq.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/git.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/index.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/install/codespaces.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/install/docker.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/install/optional.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/install/replit.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/install.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/languages.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/legal/contributor-agreement.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/legal/privacy.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/llms/anthropic.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/llms/azure.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/llms/bedrock.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/llms/cohere.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/llms/deepseek.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/llms/gemini.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/llms/github.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/llms/groq.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/llms/lm-studio.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/llms/ollama.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/llms/openai-compat.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/llms/openai.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/llms/openrouter.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/llms/other.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/llms/vertex.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/llms/warnings.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/llms/xai.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/llms.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/more/analytics.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/more/edit-formats.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/more/infinite-output.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/more-info.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/recordings/auto-accept-architect.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/recordings/dont-drop-original-read-files.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/recordings/index.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/recordings/model-accepts-settings.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/recordings/tree-sitter-language-pack.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/repomap.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/scripting.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/sessions.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/troubleshooting/aider-not-found.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/troubleshooting/edit-errors.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/troubleshooting/imports.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/troubleshooting/models-and-keys.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/troubleshooting/support.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/troubleshooting/token-limits.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/troubleshooting/warnings.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/troubleshooting.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/usage/browser.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/usage/caching.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/usage/commands.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/usage/conventions.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/usage/copypaste.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/usage/images-urls.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/usage/lint-test.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/usage/modes.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/usage/not-code.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/usage/notifications.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/usage/tips.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/usage/tutorials.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/usage/voice.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/usage/watch.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/usage.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/share/index.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli_dev.egg-info/dependency_links.txt +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli_dev.egg-info/entry_points.txt +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli_dev.egg-info/top_level.txt +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/docker/Dockerfile +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/docker/Dockerfile.local.nvidia.cuda.ubuntu +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/pyproject.toml +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/pytest.ini +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/requirements/common-constraints.txt +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/requirements/requirements-dev.in +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/requirements/requirements-dev.txt +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/requirements/requirements-help.in +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/requirements/requirements-help.txt +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/requirements/requirements-playwright.in +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/requirements/requirements-playwright.txt +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/requirements/tree-sitter.in +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/requirements.txt +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/scripts/30k-image.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/scripts/Dockerfile.jekyll +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/scripts/__init__.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/scripts/blame.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/scripts/clean_metadata.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/scripts/cost_analyzer.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/scripts/dl_icons.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/scripts/filter-chat-mode.js +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/scripts/generate_providers.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/scripts/get_contributor_list.js +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/scripts/history_prompts.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/scripts/homepage.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/scripts/issues.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/scripts/jekyll_build.sh +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/scripts/jekyll_run.sh +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/scripts/logo_svg.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/scripts/pip-compile.sh +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/scripts/recording_audio.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/scripts/redact-cast.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/scripts/rename_to_cecli.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/scripts/tmux_record.sh +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/scripts/tsl_pack_langs.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/scripts/update-blame.sh +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/scripts/update-docs.sh +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/scripts/update-history.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/scripts/versionbump.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/scripts/yank-old-versions.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/setup.cfg +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/shim.pyproject.toml +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/__init__.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/basic/__init__.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/basic/test_aws_credentials.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/basic/test_deprecated.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/basic/test_editblock.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/basic/test_editor.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/basic/test_exceptions.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/basic/test_find_or_blocks.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/basic/test_history.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/basic/test_io.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/basic/test_linter.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/basic/test_model_info_manager.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/basic/test_models.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/basic/test_onboarding.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/basic/test_plugin_manager.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/basic/test_prompts.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/basic/test_reasoning.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/basic/test_repo.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/basic/test_repomap.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/basic/test_run_cmd.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/basic/test_sanity_check_repo.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/basic/test_scripting.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/basic/test_sendchat.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/basic/test_skills.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/basic/test_special.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/basic/test_ssl_verification.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/basic/test_udiff.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/basic/test_urls.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/basic/test_voice.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/basic/test_watch.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/basic/test_wholefile.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/coders/test_copypaste_coder.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/conftest.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/chat-history-search-replace-gold.txt +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/chat-history.md +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/arduino/test.ino +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/c/test.c +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/chatito/test.chatito +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/clojure/test.clj +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/commonlisp/test.lisp +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/cpp/test.cpp +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/csharp/test.cs +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/d/test.d +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/dart/test.dart +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/elisp/test.el +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/elixir/test.ex +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/elm/test.elm +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/gleam/test.gleam +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/go/test.go +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/haskell/test.hs +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/hcl/test.tf +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/java/test.java +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/javascript/test.js +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/kotlin/test.kt +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/lua/test.lua +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/matlab/test.m +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/ocaml/test.ml +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/ocaml_interface/test.mli +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/php/test.php +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/pony/test.pony +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/properties/test.properties +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/python/test.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/ql/test.ql +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/r/test.r +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/racket/test.rkt +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/ruby/test.rb +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/rust/test.rs +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/scala/test.scala +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/solidity/test.sol +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/swift/test.swift +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/tsx/test.tsx +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/typescript/test.ts +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/udev/test.rules +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/zig/test.zig +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/sample-code-base/sample.js +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/sample-code-base/sample.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/sample-code-base-repo-map.txt +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/watch.js +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/watch.lisp +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/watch.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/watch_question.js +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/help/test_help.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/scrape/test_playwright_disable.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/tools/test_git_branch.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/tools/test_git_diff.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/tools/test_grep.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/tools/test_insert_block.py +0 -0
- {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/tools/test_registry.py +0 -0
- {cecli_dev-0.95.8 → 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
|
|
@@ -54,6 +54,7 @@ Requires-Dist: truststore
|
|
|
54
54
|
Requires-Dist: rustworkx>=0.15.0
|
|
55
55
|
Requires-Dist: scipy>=1.15.3
|
|
56
56
|
Requires-Dist: importlib-metadata>=7.2.1
|
|
57
|
+
Requires-Dist: tomli>=2.3.0; python_version <= "3.10"
|
|
57
58
|
Requires-Dist: tree-sitter==0.23.2; python_version < "3.10"
|
|
58
59
|
Requires-Dist: tree-sitter>=0.25.1; python_version >= "3.10"
|
|
59
60
|
Provides-Extra: dev
|
|
@@ -229,6 +230,7 @@ The current priorities are to improve core capabilities and user experience of t
|
|
|
229
230
|
4. **Context Delivery** - [Discussion](https://github.com/dwash96/cecli/issues/47)
|
|
230
231
|
* [ ] Use workflow for internal discovery to better target file snippets needed for specific tasks
|
|
231
232
|
* [ ] Add support for partial files and code snippets in model completion messages
|
|
233
|
+
* [ ] Update message request structure for optimal caching
|
|
232
234
|
|
|
233
235
|
5. **TUI Experience** - [Discussion](https://github.com/dwash96/cecli/issues/48)
|
|
234
236
|
* [x] Add a full TUI (probably using textual) to have a visual interface competitive with the other coding agent terminal programs
|
|
@@ -240,8 +242,8 @@ The current priorities are to improve core capabilities and user experience of t
|
|
|
240
242
|
* [x] Add an explicit "finished" internal tool
|
|
241
243
|
* [x] Add a configuration json setting for agent mode to specify allowed local tools to use, tool call limits, etc.
|
|
242
244
|
* [ ] Add a RAG tool for the model to ask questions about the codebase
|
|
243
|
-
* [
|
|
244
|
-
* [
|
|
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
|
|
245
247
|
* [x] Add a dynamic tool discovery tool to allow the system to have only the tools it needs in context
|
|
246
248
|
|
|
247
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'
|
|
@@ -757,12 +757,6 @@ def get_parser(default_config_files, git_root):
|
|
|
757
757
|
help="Show release notes on first run of new version (default: None, ask user)",
|
|
758
758
|
default=None,
|
|
759
759
|
)
|
|
760
|
-
group.add_argument(
|
|
761
|
-
"--install-main-branch",
|
|
762
|
-
action="store_true",
|
|
763
|
-
help="Install the latest version from the main branch",
|
|
764
|
-
default=False,
|
|
765
|
-
)
|
|
766
760
|
group.add_argument(
|
|
767
761
|
"--upgrade",
|
|
768
762
|
"--update",
|
|
@@ -23,7 +23,7 @@ from cecli.helpers.similarity import (
|
|
|
23
23
|
normalize_vector,
|
|
24
24
|
)
|
|
25
25
|
from cecli.helpers.skills import SkillsManager
|
|
26
|
-
from cecli.mcp
|
|
26
|
+
from cecli.mcp import LocalServer, McpServerManager
|
|
27
27
|
from cecli.repo import ANY_GIT_ERROR
|
|
28
28
|
from cecli.tools.utils.registry import ToolRegistry
|
|
29
29
|
|
|
@@ -209,14 +209,17 @@ class AgentCoder(Coder):
|
|
|
209
209
|
local_tools = self.get_local_tool_schemas()
|
|
210
210
|
if not local_tools:
|
|
211
211
|
return
|
|
212
|
+
|
|
212
213
|
local_server_config = {"name": server_name}
|
|
213
214
|
local_server = LocalServer(local_server_config)
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
215
|
+
|
|
216
|
+
if not self.mcp_manager:
|
|
217
|
+
self.mcp_manager = McpServerManager()
|
|
218
|
+
if not self.mcp_manager.get_server(server_name):
|
|
219
|
+
await self.mcp_manager.add_server(local_server)
|
|
218
220
|
if not self.mcp_tools:
|
|
219
221
|
self.mcp_tools = []
|
|
222
|
+
|
|
220
223
|
if server_name not in [name for name, _ in self.mcp_tools]:
|
|
221
224
|
self.mcp_tools.append((local_server.name, local_tools))
|
|
222
225
|
|
|
@@ -257,9 +260,7 @@ class AgentCoder(Coder):
|
|
|
257
260
|
t.get("function", {}).get("name") == norm_tool_name
|
|
258
261
|
for t in server_tools
|
|
259
262
|
):
|
|
260
|
-
server =
|
|
261
|
-
(s for s in self.mcp_servers if s.name == server_name), None
|
|
262
|
-
)
|
|
263
|
+
server = self.mcp_manager.get_server(server_name)
|
|
263
264
|
if server:
|
|
264
265
|
for params in parsed_args_list:
|
|
265
266
|
tasks.append(
|
|
@@ -955,7 +956,7 @@ I will proceed based on the current context.""")
|
|
|
955
956
|
if self.mcp_tools:
|
|
956
957
|
for server_name, server_tools in self.mcp_tools:
|
|
957
958
|
if any(t.get("function", {}).get("name") == norm_tool_name for t in server_tools):
|
|
958
|
-
server =
|
|
959
|
+
server = self.mcp_manager.get_server(server_name)
|
|
959
960
|
if server:
|
|
960
961
|
return await self._execute_mcp_tool(server, norm_tool_name, params)
|
|
961
962
|
else:
|
|
@@ -1499,7 +1500,7 @@ Just reply with fixed versions of the {blocks} above that failed to match.
|
|
|
1499
1500
|
if shared_output:
|
|
1500
1501
|
self.io.tool_output("Shell command output:\n" + shared_output)
|
|
1501
1502
|
if self.auto_test and not self.reflected_message:
|
|
1502
|
-
test_errors = await self.commands.
|
|
1503
|
+
test_errors = await self.commands.execute("test", self.test_cmd)
|
|
1503
1504
|
if test_errors:
|
|
1504
1505
|
ok = await self.io.confirm_ask("Attempt to fix test errors?")
|
|
1505
1506
|
if ok:
|
|
@@ -44,7 +44,7 @@ from cecli.history import ChatSummary
|
|
|
44
44
|
from cecli.io import ConfirmGroup, InputOutput
|
|
45
45
|
from cecli.linter import Linter
|
|
46
46
|
from cecli.llm import litellm
|
|
47
|
-
from cecli.mcp
|
|
47
|
+
from cecli.mcp import LocalServer
|
|
48
48
|
from cecli.models import RETRY_TIMEOUT
|
|
49
49
|
from cecli.reasoning_tags import (
|
|
50
50
|
REASONING_TAG,
|
|
@@ -138,7 +138,7 @@ class Coder:
|
|
|
138
138
|
chat_language = None
|
|
139
139
|
commit_language = None
|
|
140
140
|
file_watcher = None
|
|
141
|
-
|
|
141
|
+
mcp_manager = None
|
|
142
142
|
mcp_tools = None
|
|
143
143
|
run_one_completed = True
|
|
144
144
|
compact_context_completed = True
|
|
@@ -249,8 +249,8 @@ class Coder:
|
|
|
249
249
|
|
|
250
250
|
if res is not None:
|
|
251
251
|
if from_coder:
|
|
252
|
-
if from_coder.
|
|
253
|
-
res.
|
|
252
|
+
if from_coder.mcp_manager:
|
|
253
|
+
res.mcp_manager = from_coder.mcp_manager
|
|
254
254
|
res.mcp_tools = from_coder.mcp_tools
|
|
255
255
|
|
|
256
256
|
# Transfer TUI app weak reference
|
|
@@ -316,7 +316,7 @@ class Coder:
|
|
|
316
316
|
file_watcher=None,
|
|
317
317
|
auto_copy_context=False,
|
|
318
318
|
auto_accept_architect=True,
|
|
319
|
-
|
|
319
|
+
mcp_manager=None,
|
|
320
320
|
enable_context_compaction=False,
|
|
321
321
|
context_compaction_max_tokens=None,
|
|
322
322
|
context_compaction_summary_tokens=8192,
|
|
@@ -350,7 +350,7 @@ class Coder:
|
|
|
350
350
|
self.args = args
|
|
351
351
|
|
|
352
352
|
self.num_cache_warming_pings = num_cache_warming_pings
|
|
353
|
-
self.
|
|
353
|
+
self.mcp_manager = mcp_manager
|
|
354
354
|
self.enable_context_compaction = enable_context_compaction
|
|
355
355
|
|
|
356
356
|
self.context_compaction_max_tokens = context_compaction_max_tokens
|
|
@@ -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()
|
|
@@ -1564,7 +1574,7 @@ class Coder:
|
|
|
1564
1574
|
|
|
1565
1575
|
def copy_context(self):
|
|
1566
1576
|
if self.auto_copy_context:
|
|
1567
|
-
self.commands.
|
|
1577
|
+
self.commands.execute("copy-context", "")
|
|
1568
1578
|
|
|
1569
1579
|
async def get_input(self):
|
|
1570
1580
|
inchat_files = self.get_inchat_relative_files()
|
|
@@ -1684,7 +1694,7 @@ class Coder:
|
|
|
1684
1694
|
explicit_yes_required=self.args.yes_always_commands,
|
|
1685
1695
|
):
|
|
1686
1696
|
inp += "\n\n"
|
|
1687
|
-
inp += await self.commands.
|
|
1697
|
+
inp += await self.commands.execute("web", url, return_content=True)
|
|
1688
1698
|
else:
|
|
1689
1699
|
self.rejected_urls.add(url)
|
|
1690
1700
|
|
|
@@ -2438,7 +2448,7 @@ class Coder:
|
|
|
2438
2448
|
]
|
|
2439
2449
|
|
|
2440
2450
|
if edited and self.auto_test:
|
|
2441
|
-
test_errors = await self.commands.
|
|
2451
|
+
test_errors = await self.commands.execute("test", self.test_cmd)
|
|
2442
2452
|
self.test_outcome = not test_errors
|
|
2443
2453
|
if test_errors:
|
|
2444
2454
|
ok = await self.io.confirm_ask("Attempt to fix test errors?")
|
|
@@ -2562,7 +2572,7 @@ class Coder:
|
|
|
2562
2572
|
and tool_name_from_schema.lower() == tool_call.function.name.lower()
|
|
2563
2573
|
):
|
|
2564
2574
|
# Find the McpServer instance that will be used for communication
|
|
2565
|
-
for server in self.
|
|
2575
|
+
for server in self.mcp_manager:
|
|
2566
2576
|
if server.name == server_name:
|
|
2567
2577
|
if server not in server_tool_calls:
|
|
2568
2578
|
server_tool_calls[server] = []
|
|
@@ -2740,6 +2750,7 @@ class Coder:
|
|
|
2740
2750
|
Initialize tools from all configured MCP servers. MCP Servers that fail to be
|
|
2741
2751
|
initialized will not be available to the Coder instance.
|
|
2742
2752
|
"""
|
|
2753
|
+
# TODO(@gopar): refactor here once we have fully moved over to use the mcp manager
|
|
2743
2754
|
tools = []
|
|
2744
2755
|
|
|
2745
2756
|
async def get_server_tools(server):
|
|
@@ -2750,9 +2761,13 @@ class Coder:
|
|
|
2750
2761
|
return (server.name, server_tools)
|
|
2751
2762
|
|
|
2752
2763
|
try:
|
|
2753
|
-
|
|
2764
|
+
did_connect = await self.mcp_manager.connect_server(server.name)
|
|
2765
|
+
if not did_connect:
|
|
2766
|
+
raise Exception("Failed to load tools")
|
|
2767
|
+
|
|
2768
|
+
server = self.mcp_manager.get_server(server.name)
|
|
2754
2769
|
server_tools = await experimental_mcp_client.load_mcp_tools(
|
|
2755
|
-
session=session, format="openai"
|
|
2770
|
+
session=server.session, format="openai"
|
|
2756
2771
|
)
|
|
2757
2772
|
return (server.name, server_tools)
|
|
2758
2773
|
except Exception as e:
|
|
@@ -2761,11 +2776,11 @@ class Coder:
|
|
|
2761
2776
|
return None
|
|
2762
2777
|
|
|
2763
2778
|
async def get_all_server_tools():
|
|
2764
|
-
tasks = [get_server_tools(server) for server in self.
|
|
2779
|
+
tasks = [get_server_tools(server) for server in self.mcp_manager if server.is_enabled]
|
|
2765
2780
|
results = await asyncio.gather(*tasks)
|
|
2766
2781
|
return [result for result in results if result is not None]
|
|
2767
2782
|
|
|
2768
|
-
if self.
|
|
2783
|
+
if self.mcp_manager:
|
|
2769
2784
|
# Retry initialization in case of CancelledError
|
|
2770
2785
|
max_retries = 3
|
|
2771
2786
|
for i in range(max_retries):
|
|
@@ -3852,7 +3867,7 @@ class Coder:
|
|
|
3852
3867
|
self.coder_commit_hashes.add(commit_hash)
|
|
3853
3868
|
self.last_coder_commit_message = commit_message
|
|
3854
3869
|
if self.show_diffs:
|
|
3855
|
-
self.commands.
|
|
3870
|
+
self.commands.execute("diff", "")
|
|
3856
3871
|
|
|
3857
3872
|
def show_undo_hint(self):
|
|
3858
3873
|
if not self.commit_before_message:
|
|
@@ -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()
|
|
@@ -178,7 +178,7 @@ class Commands:
|
|
|
178
178
|
commands = [f"/{cmd}" for cmd in registry_commands]
|
|
179
179
|
return sorted(commands)
|
|
180
180
|
|
|
181
|
-
async def
|
|
181
|
+
async def execute(self, cmd_name, args, **kwargs):
|
|
182
182
|
command_class = CommandRegistry.get_command(cmd_name)
|
|
183
183
|
if not command_class:
|
|
184
184
|
self.io.tool_output(f"Error: Command {cmd_name} not found.")
|
|
@@ -224,17 +224,17 @@ class Commands:
|
|
|
224
224
|
|
|
225
225
|
async def run(self, inp):
|
|
226
226
|
if inp.startswith("!"):
|
|
227
|
-
return await self.
|
|
227
|
+
return await self.execute("run", inp[1:])
|
|
228
228
|
res = self.matching_commands(inp)
|
|
229
229
|
if res is None:
|
|
230
230
|
return
|
|
231
231
|
matching_commands, first_word, rest_inp = res
|
|
232
232
|
if len(matching_commands) == 1:
|
|
233
233
|
command = matching_commands[0][1:]
|
|
234
|
-
return await self.
|
|
234
|
+
return await self.execute(command, rest_inp)
|
|
235
235
|
elif first_word in matching_commands:
|
|
236
236
|
command = first_word[1:]
|
|
237
|
-
return await self.
|
|
237
|
+
return await self.execute(command, rest_inp)
|
|
238
238
|
elif len(matching_commands) > 1:
|
|
239
239
|
self.io.tool_error(f"Ambiguous command: {', '.join(matching_commands)}")
|
|
240
240
|
else:
|
|
@@ -14,14 +14,6 @@ class ExitCommand(BaseCommand):
|
|
|
14
14
|
@classmethod
|
|
15
15
|
async def execute(cls, io, coder, args, **kwargs):
|
|
16
16
|
"""Execute the exit command with given parameters."""
|
|
17
|
-
for server in coder.mcp_servers:
|
|
18
|
-
try:
|
|
19
|
-
await server.exit_stack.aclose()
|
|
20
|
-
except Exception:
|
|
21
|
-
pass
|
|
22
|
-
|
|
23
|
-
await asyncio.sleep(0)
|
|
24
|
-
|
|
25
17
|
# Check if running in TUI mode - use graceful exit to restore terminal
|
|
26
18
|
if hasattr(io, "request_exit"):
|
|
27
19
|
io.request_exit()
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import os
|
|
2
|
+
from typing import List
|
|
3
|
+
|
|
4
|
+
from cecli.commands.utils.base_command import BaseCommand
|
|
5
|
+
from cecli.commands.utils.helpers import format_command_result
|
|
6
|
+
from cecli.utils import run_fzf
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class HistorySearchCommand(BaseCommand):
|
|
10
|
+
NORM_NAME = "history-search"
|
|
11
|
+
DESCRIPTION = "Fuzzy search in history and paste it in the prompt"
|
|
12
|
+
|
|
13
|
+
@classmethod
|
|
14
|
+
async def execute(cls, io, coder, args, **kwargs):
|
|
15
|
+
"""Execute the history-search command with given parameters."""
|
|
16
|
+
# Get history lines based on whether we're in TUI mode or not
|
|
17
|
+
if coder.tui and coder.tui():
|
|
18
|
+
# In TUI mode, parse the history file directly using our custom parser
|
|
19
|
+
history_lines = cls.parse_input_history_file(io.input_history_file)
|
|
20
|
+
else:
|
|
21
|
+
# In non-TUI mode, use the io.get_input_history() method
|
|
22
|
+
history_lines = io.get_input_history()
|
|
23
|
+
|
|
24
|
+
selected_lines = run_fzf(history_lines, coder=coder)
|
|
25
|
+
if selected_lines:
|
|
26
|
+
io.set_placeholder("".join(selected_lines))
|
|
27
|
+
|
|
28
|
+
if coder.tui and coder.tui():
|
|
29
|
+
coder.tui().set_input_value("".join(selected_lines))
|
|
30
|
+
return format_command_result(
|
|
31
|
+
io, "history-search", "Selected history lines and set placeholder"
|
|
32
|
+
)
|
|
33
|
+
else:
|
|
34
|
+
return format_command_result(io, "history-search", "No history lines selected")
|
|
35
|
+
|
|
36
|
+
@classmethod
|
|
37
|
+
def get_completions(cls, io, coder, args) -> List[str]:
|
|
38
|
+
"""Get completion options for history-search command."""
|
|
39
|
+
return []
|
|
40
|
+
|
|
41
|
+
@classmethod
|
|
42
|
+
def get_help(cls) -> str:
|
|
43
|
+
"""Get help text for the history-search command."""
|
|
44
|
+
help_text = super().get_help()
|
|
45
|
+
help_text += "\nUsage:\n"
|
|
46
|
+
help_text += " /history-search # Fuzzy search through command history\n"
|
|
47
|
+
help_text += (
|
|
48
|
+
"\nThis command opens a fuzzy finder (FZF) to search through your command history.\n"
|
|
49
|
+
)
|
|
50
|
+
help_text += "Selected lines will be pasted into the input prompt for editing.\n"
|
|
51
|
+
return help_text
|
|
52
|
+
|
|
53
|
+
@classmethod
|
|
54
|
+
def parse_input_history_file(cls, file_path: str) -> List[str]:
|
|
55
|
+
"""Parse the input history file format.
|
|
56
|
+
|
|
57
|
+
The file format consists of blocks separated by timestamp lines starting with '#'.
|
|
58
|
+
Each block has lines starting with '+' for the actual input.
|
|
59
|
+
|
|
60
|
+
Args:
|
|
61
|
+
file_path: Path to the history file
|
|
62
|
+
|
|
63
|
+
Returns:
|
|
64
|
+
List of history entries (strings)
|
|
65
|
+
"""
|
|
66
|
+
if not file_path or not os.path.exists(file_path):
|
|
67
|
+
return []
|
|
68
|
+
|
|
69
|
+
try:
|
|
70
|
+
with open(file_path, "r") as f:
|
|
71
|
+
content = f.read()
|
|
72
|
+
except (OSError, IOError):
|
|
73
|
+
return []
|
|
74
|
+
|
|
75
|
+
# Parse the file format: blocks separated by timestamp lines starting with '#'
|
|
76
|
+
# Each block has lines starting with '+' for the actual input
|
|
77
|
+
history = []
|
|
78
|
+
current_block = []
|
|
79
|
+
in_block = False
|
|
80
|
+
|
|
81
|
+
for line in content.splitlines():
|
|
82
|
+
line = line.rstrip("\n")
|
|
83
|
+
|
|
84
|
+
if line.startswith("#"):
|
|
85
|
+
# This is a timestamp line - start a new block
|
|
86
|
+
if current_block:
|
|
87
|
+
# Join the current block lines and add to history
|
|
88
|
+
block_text = "\n".join(current_block)
|
|
89
|
+
history.append(block_text)
|
|
90
|
+
current_block = []
|
|
91
|
+
in_block = True
|
|
92
|
+
# Reset in_block if we encounter another timestamp without any + lines
|
|
93
|
+
# This handles consecutive timestamp lines
|
|
94
|
+
elif line.startswith("+") and in_block:
|
|
95
|
+
# This is an input line in the current block
|
|
96
|
+
# Remove the leading '+' and add to current block
|
|
97
|
+
# Use [1:] to remove the first character (the '+')
|
|
98
|
+
# This preserves any leading spaces that might be part of the input
|
|
99
|
+
current_block.append(line[1:])
|
|
100
|
+
elif line.strip() == "":
|
|
101
|
+
# Empty line - ignore
|
|
102
|
+
continue
|
|
103
|
+
else:
|
|
104
|
+
# Unexpected line format - skip it
|
|
105
|
+
continue
|
|
106
|
+
|
|
107
|
+
# Don't forget the last block
|
|
108
|
+
if current_block:
|
|
109
|
+
block_text = "\n".join(current_block)
|
|
110
|
+
history.append(block_text)
|
|
111
|
+
|
|
112
|
+
return history
|