cecli-dev 0.97.3__tar.gz → 0.97.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/PKG-INFO +4 -4
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/README.md +3 -3
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/__init__.py +1 -1
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/_version.py +3 -3
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/args.py +6 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/coders/agent_coder.py +4 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/coders/architect_coder.py +4 -6
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/coders/base_coder.py +28 -101
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/commands/agent_model.py +3 -3
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/commands/editor_model.py +3 -3
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/commands/model.py +3 -3
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/commands/tokens.py +1 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/commands/utils/base_command.py +3 -5
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/commands/weak_model.py +3 -3
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/helpers/conversation/manager.py +28 -23
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/helpers/hashline.py +434 -199
- cecli_dev-0.97.4/cecli/helpers/responses.py +132 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/main.py +24 -1
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/prompts/agent.yml +3 -2
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/prompts/hashline.yml +16 -19
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/resources/model-metadata.json +19984 -19100
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/scrape.py +1 -1
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/tools/command.py +6 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/tools/context_manager.py +9 -1
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/tools/grep.py +22 -5
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/tui/app.py +44 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/tui/widgets/input_area.py +15 -11
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/config/tui.md +1 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/troubleshooting/imports.md +1 -5
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli_dev.egg-info/PKG-INFO +4 -4
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli_dev.egg-info/SOURCES.txt +0 -3
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/scripts/filter-chat-mode.js +35 -5
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/basic/test_hashline.py +4 -79
- cecli_dev-0.97.3/cecli/helpers/responses.py +0 -21
- cecli_dev-0.97.3/cecli/website/docs/install/codespaces.md +0 -39
- cecli_dev-0.97.3/cecli/website/docs/install/replit.md +0 -8
- cecli_dev-0.97.3/cecli/website/docs/usage/tutorials.md +0 -30
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/.dockerignore +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/.flake8 +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/.gitattributes +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/.github/ISSUE_TEMPLATE/issue.yml +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/.github/workflows/check_pypi_version.yml +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/.github/workflows/docker-build-test.yml +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/.github/workflows/docker-release.yml +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/.github/workflows/issues.yml +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/.github/workflows/pages.yml +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/.github/workflows/pre-commit.yml +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/.github/workflows/release.yml +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/.github/workflows/ubuntu-tests.yml +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/.github/workflows/windows-tests.yml +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/.github/workflows/windows_check_pypi_version.yml +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/.gitignore +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/.pre-commit-config.yaml +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/CHANGELOG.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/CNAME +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/CONTRIBUTING.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/HISTORY.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/LICENSE.txt +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/MANIFEST.in +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/benchmark/Dockerfile +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/benchmark/README.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/benchmark/__init__.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/benchmark/benchmark.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/benchmark/benchmark_classic.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/benchmark/clone-exercism.sh +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/benchmark/cpp-test.sh +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/benchmark/docker.sh +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/benchmark/docker_build.sh +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/benchmark/install-docker-ubuntu.sh +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/benchmark/npm-test.sh +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/benchmark/over_time.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/benchmark/plot.sh +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/benchmark/plots.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/benchmark/primary_variations.sh +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/benchmark/problem_stats.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/benchmark/prompts.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/benchmark/refactor_tools.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/benchmark/rsync.sh +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/benchmark/rungrid.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/benchmark/swe-bench-lite.txt +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/benchmark/swe-bench.txt +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/benchmark/swe_bench.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/benchmark/test_benchmark.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/__main__.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/args_formatter.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/change_tracker.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/coders/__init__.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/coders/ask_coder.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/coders/chat_chunks.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/coders/context_coder.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/coders/copypaste_coder.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/coders/editblock_coder.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/coders/editblock_fenced_coder.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/coders/editblock_func_coder.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/coders/editor_diff_fenced_coder.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/coders/editor_editblock_coder.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/coders/editor_whole_coder.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/coders/hashline_coder.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/coders/help_coder.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/coders/patch_coder.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/coders/search_replace.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/coders/shell.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/coders/single_wholefile_func_coder.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/coders/udiff_coder.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/coders/udiff_simple.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/coders/wholefile_coder.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/coders/wholefile_func_coder.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/commands/__init__.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/commands/add.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/commands/agent.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/commands/architect.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/commands/ask.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/commands/chat_mode.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/commands/clear.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/commands/code.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/commands/command_prefix.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/commands/commit.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/commands/compact.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/commands/context.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/commands/context_blocks.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/commands/context_management.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/commands/copy.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/commands/copy_context.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/commands/core.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/commands/diff.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/commands/drop.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/commands/editor.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/commands/exit.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/commands/git.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/commands/hashline.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/commands/help.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/commands/history_search.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/commands/hooks.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/commands/lint.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/commands/list_sessions.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/commands/load.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/commands/load_hook.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/commands/load_mcp.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/commands/load_session.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/commands/load_skill.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/commands/ls.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/commands/map.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/commands/map_refresh.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/commands/models.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/commands/multiline_mode.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/commands/paste.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/commands/quit.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/commands/read_only.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/commands/read_only_stub.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/commands/reasoning_effort.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/commands/remove_hook.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/commands/remove_mcp.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/commands/remove_skill.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/commands/report.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/commands/reset.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/commands/run.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/commands/save.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/commands/save_session.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/commands/settings.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/commands/terminal_data/linux.keytab +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/commands/terminal_setup.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/commands/test.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/commands/think_tokens.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/commands/undo.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/commands/utils/__init__.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/commands/utils/helpers.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/commands/utils/registry.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/commands/utils/save_load_manager.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/commands/voice.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/commands/web.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/deprecated_args.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/diffs.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/dump.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/editor.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/exceptions.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/format_settings.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/help.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/help_pats.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/helpers/__init__.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/helpers/background_commands.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/helpers/command_parser.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/helpers/conversation/__init__.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/helpers/conversation/base_message.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/helpers/conversation/files.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/helpers/conversation/integration.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/helpers/conversation/tags.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/helpers/conversation/utils.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/helpers/copypaste.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/helpers/coroutines.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/helpers/file_searcher.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/helpers/model_providers.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/helpers/nested.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/helpers/plugin_manager.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/helpers/profiler.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/helpers/requests.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/helpers/similarity.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/helpers/skills.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/history.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/hooks/__init__.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/hooks/base.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/hooks/integration.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/hooks/manager.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/hooks/registry.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/hooks/types.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/interruptible_input.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/io.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/linter.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/llm.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/mcp/__init__.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/mcp/manager.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/mcp/oauth.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/mcp/server.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/mcp/utils.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/mdstream.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/models.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/onboarding.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/prompts/__init__.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/prompts/architect.yml +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/prompts/ask.yml +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/prompts/base.yml +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/prompts/context.yml +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/prompts/copypaste.yml +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/prompts/editblock.yml +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/prompts/editblock_fenced.yml +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/prompts/editblock_func.yml +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/prompts/editor_diff_fenced.yml +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/prompts/editor_editblock.yml +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/prompts/editor_whole.yml +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/prompts/help.yml +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/prompts/patch.yml +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/prompts/single_wholefile_func.yml +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/prompts/udiff.yml +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/prompts/udiff_simple.yml +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/prompts/utils/__init__.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/prompts/utils/registry.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/prompts/utils/system.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/prompts/wholefile.yml +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/prompts/wholefile_func.yml +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/queries/tree-sitter-language-pack/README.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/queries/tree-sitter-language-pack/arduino-tags.scm +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/queries/tree-sitter-language-pack/c-tags.scm +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/queries/tree-sitter-language-pack/chatito-tags.scm +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/queries/tree-sitter-language-pack/clojure-tags.scm +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/queries/tree-sitter-language-pack/commonlisp-tags.scm +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/queries/tree-sitter-language-pack/cpp-tags.scm +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/queries/tree-sitter-language-pack/csharp-tags.scm +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/queries/tree-sitter-language-pack/d-tags.scm +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/queries/tree-sitter-language-pack/dart-tags.scm +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/queries/tree-sitter-language-pack/elisp-tags.scm +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/queries/tree-sitter-language-pack/elixir-tags.scm +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/queries/tree-sitter-language-pack/elm-tags.scm +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/queries/tree-sitter-language-pack/gleam-tags.scm +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/queries/tree-sitter-language-pack/go-tags.scm +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/queries/tree-sitter-language-pack/java-tags.scm +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/queries/tree-sitter-language-pack/javascript-tags.scm +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/queries/tree-sitter-language-pack/lua-tags.scm +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/queries/tree-sitter-language-pack/matlab-tags.scm +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/queries/tree-sitter-language-pack/ocaml-tags.scm +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/queries/tree-sitter-language-pack/ocaml_interface-tags.scm +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/queries/tree-sitter-language-pack/pony-tags.scm +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/queries/tree-sitter-language-pack/properties-tags.scm +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/queries/tree-sitter-language-pack/python-tags.scm +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/queries/tree-sitter-language-pack/r-tags.scm +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/queries/tree-sitter-language-pack/racket-tags.scm +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/queries/tree-sitter-language-pack/ruby-tags.scm +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/queries/tree-sitter-language-pack/rust-tags.scm +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/queries/tree-sitter-language-pack/solidity-tags.scm +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/queries/tree-sitter-language-pack/swift-tags.scm +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/queries/tree-sitter-language-pack/udev-tags.scm +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/queries/tree-sitter-languages/README.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/queries/tree-sitter-languages/c-tags.scm +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/queries/tree-sitter-languages/c_sharp-tags.scm +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/queries/tree-sitter-languages/cpp-tags.scm +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/queries/tree-sitter-languages/dart-tags.scm +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/queries/tree-sitter-languages/elisp-tags.scm +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/queries/tree-sitter-languages/elixir-tags.scm +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/queries/tree-sitter-languages/elm-tags.scm +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/queries/tree-sitter-languages/fortran-tags.scm +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/queries/tree-sitter-languages/go-tags.scm +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/queries/tree-sitter-languages/haskell-tags.scm +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/queries/tree-sitter-languages/hcl-tags.scm +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/queries/tree-sitter-languages/java-tags.scm +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/queries/tree-sitter-languages/javascript-tags.scm +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/queries/tree-sitter-languages/julia-tags.scm +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/queries/tree-sitter-languages/kotlin-tags.scm +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/queries/tree-sitter-languages/matlab-tags.scm +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/queries/tree-sitter-languages/ocaml-tags.scm +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/queries/tree-sitter-languages/ocaml_interface-tags.scm +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/queries/tree-sitter-languages/php-tags.scm +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/queries/tree-sitter-languages/python-tags.scm +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/queries/tree-sitter-languages/ql-tags.scm +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/queries/tree-sitter-languages/ruby-tags.scm +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/queries/tree-sitter-languages/rust-tags.scm +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/queries/tree-sitter-languages/scala-tags.scm +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/queries/tree-sitter-languages/typescript-tags.scm +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/queries/tree-sitter-languages/zig-tags.scm +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/reasoning_tags.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/repo.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/repomap.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/report.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/resources/__init__.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/resources/model-settings.yml +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/resources/providers.json +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/run_cmd.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/sendchat.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/sessions.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/special.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/tools/__init__.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/tools/command_interactive.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/tools/delete_text.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/tools/finished.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/tools/git_branch.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/tools/git_diff.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/tools/git_log.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/tools/git_remote.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/tools/git_show.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/tools/git_status.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/tools/indent_text.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/tools/insert_text.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/tools/list_changes.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/tools/load_skill.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/tools/ls.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/tools/remove_skill.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/tools/replace_text.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/tools/show_numbered_context.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/tools/thinking.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/tools/undo_change.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/tools/update_todo_list.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/tools/utils/base_tool.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/tools/utils/helpers.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/tools/utils/output.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/tools/utils/registry.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/tools/view_files_matching.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/tools/view_files_with_symbol.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/tui/__init__.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/tui/io.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/tui/styles.tcss +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/tui/widgets/__init__.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/tui/widgets/completion_bar.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/tui/widgets/file_list.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/tui/widgets/footer.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/tui/widgets/input_container.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/tui/widgets/key_hints.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/tui/widgets/output.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/tui/widgets/status_bar.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/tui/worker.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/urls.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/utils.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/versioncheck.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/voice.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/waiting.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/watch.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/watch_prompts.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/Gemfile +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/_includes/blame.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/_includes/get-started.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/_includes/help-tip.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/_includes/help.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/_includes/install.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/_includes/keys.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/_includes/model-warnings.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/_includes/multi-line.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/_includes/python-m-aider.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/_includes/recording.css +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/_includes/recording.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/_includes/works-best.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/_sass/_features.scss +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/_sass/_footer.scss +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/_sass/_hero.scss +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/_sass/_info.scss +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/_sass/_layout.scss +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/_sass/_reset.scss +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/_sass/_testimonials.scss +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/_sass/_typography.scss +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/_sass/_variables.scss +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/_sass/custom/custom.scss +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/_sass/global-overrides.scss +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/config/adv-model-settings.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/config/agent-mode.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/config/aider_conf.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/config/api-keys.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/config/custom-commands.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/config/custom-system-prompts.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/config/dotenv.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/config/editor.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/config/hooks.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/config/mcp.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/config/model-aliases.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/config/options.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/config/reasoning.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/config/security.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/config/skills.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/config.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/faq.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/git.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/index.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/install/docker.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/install/optional.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/install.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/languages.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/legal/contributor-agreement.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/legal/privacy.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/llms/anthropic.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/llms/azure.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/llms/bedrock.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/llms/cohere.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/llms/deepseek.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/llms/gemini.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/llms/github.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/llms/groq.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/llms/lm-studio.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/llms/ollama.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/llms/openai-compat.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/llms/openai.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/llms/openrouter.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/llms/other.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/llms/vertex.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/llms/warnings.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/llms/xai.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/llms.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/more/analytics.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/more/edit-formats.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/more/infinite-output.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/more-info.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/recordings/auto-accept-architect.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/recordings/dont-drop-original-read-files.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/recordings/index.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/recordings/model-accepts-settings.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/recordings/tree-sitter-language-pack.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/repomap.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/scripting.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/sessions.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/troubleshooting/cecli-not-found.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/troubleshooting/edit-errors.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/troubleshooting/models-and-keys.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/troubleshooting/support.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/troubleshooting/token-limits.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/troubleshooting/warnings.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/troubleshooting.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/usage/browser.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/usage/caching.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/usage/commands.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/usage/conventions.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/usage/copypaste.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/usage/images-urls.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/usage/lint-test.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/usage/modes.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/usage/not-code.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/usage/notifications.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/usage/tips.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/usage/voice.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/usage/watch.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/docs/usage.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli/website/share/index.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli_dev.egg-info/dependency_links.txt +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli_dev.egg-info/entry_points.txt +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli_dev.egg-info/requires.txt +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/cecli_dev.egg-info/top_level.txt +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/docker/Dockerfile +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/docker/Dockerfile.local.nvidia.cuda.ubuntu +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/pyproject.toml +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/pytest.ini +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/requirements/common-constraints.txt +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/requirements/requirements-dev.in +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/requirements/requirements-dev.txt +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/requirements/requirements-help.in +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/requirements/requirements-help.txt +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/requirements/requirements-playwright.in +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/requirements/requirements-playwright.txt +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/requirements/requirements.in +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/requirements/tree-sitter.in +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/requirements.txt +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/scripts/30k-image.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/scripts/Dockerfile.jekyll +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/scripts/__init__.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/scripts/blame.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/scripts/clean_metadata.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/scripts/cost_analyzer.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/scripts/dl_icons.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/scripts/generate_providers.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/scripts/get_contributor_list.js +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/scripts/get_hashline.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/scripts/history_prompts.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/scripts/homepage.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/scripts/issues.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/scripts/jekyll_build.sh +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/scripts/jekyll_run.sh +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/scripts/logo_svg.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/scripts/pip-compile.sh +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/scripts/recording_audio.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/scripts/redact-cast.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/scripts/rename_to_cecli.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/scripts/tmux_record.sh +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/scripts/tsl_pack_langs.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/scripts/update-blame.sh +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/scripts/update-docs.sh +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/scripts/update-history.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/scripts/versionbump.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/scripts/yank-old-versions.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/setup.cfg +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/shim.pyproject.toml +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/__init__.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/basic/__init__.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/basic/test_aws_credentials.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/basic/test_background_commands.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/basic/test_coder.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/basic/test_commands.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/basic/test_custom_commands.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/basic/test_deprecated.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/basic/test_editblock.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/basic/test_editor.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/basic/test_exceptions.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/basic/test_find_or_blocks.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/basic/test_history.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/basic/test_io.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/basic/test_linter.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/basic/test_main.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/basic/test_model_info_manager.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/basic/test_model_provider_manager.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/basic/test_models.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/basic/test_onboarding.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/basic/test_plugin_manager.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/basic/test_prompts.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/basic/test_reasoning.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/basic/test_repo.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/basic/test_repomap.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/basic/test_run_cmd.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/basic/test_sanity_check_repo.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/basic/test_scripting.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/basic/test_sendchat.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/basic/test_sessions.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/basic/test_skills.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/basic/test_special.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/basic/test_ssl_verification.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/basic/test_udiff.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/basic/test_urls.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/basic/test_voice.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/basic/test_watch.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/basic/test_wholefile.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/coders/test_copypaste_coder.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/conftest.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/fixtures/chat-history-search-replace-gold.txt +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/fixtures/chat-history.md +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/fixtures/languages/arduino/test.ino +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/fixtures/languages/c/test.c +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/fixtures/languages/chatito/test.chatito +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/fixtures/languages/clojure/test.clj +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/fixtures/languages/commonlisp/test.lisp +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/fixtures/languages/cpp/test.cpp +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/fixtures/languages/csharp/test.cs +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/fixtures/languages/d/test.d +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/fixtures/languages/dart/test.dart +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/fixtures/languages/elisp/test.el +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/fixtures/languages/elixir/test.ex +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/fixtures/languages/elm/test.elm +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/fixtures/languages/gleam/test.gleam +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/fixtures/languages/go/test.go +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/fixtures/languages/haskell/test.hs +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/fixtures/languages/hcl/test.tf +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/fixtures/languages/java/test.java +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/fixtures/languages/javascript/test.js +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/fixtures/languages/kotlin/test.kt +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/fixtures/languages/lua/test.lua +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/fixtures/languages/matlab/test.m +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/fixtures/languages/ocaml/test.ml +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/fixtures/languages/ocaml_interface/test.mli +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/fixtures/languages/php/test.php +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/fixtures/languages/pony/test.pony +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/fixtures/languages/properties/test.properties +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/fixtures/languages/python/test.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/fixtures/languages/ql/test.ql +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/fixtures/languages/r/test.r +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/fixtures/languages/racket/test.rkt +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/fixtures/languages/ruby/test.rb +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/fixtures/languages/rust/test.rs +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/fixtures/languages/scala/test.scala +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/fixtures/languages/solidity/test.sol +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/fixtures/languages/swift/test.swift +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/fixtures/languages/tsx/test.tsx +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/fixtures/languages/typescript/test.ts +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/fixtures/languages/udev/test.rules +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/fixtures/languages/zig/test.zig +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/fixtures/sample-code-base/sample.js +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/fixtures/sample-code-base/sample.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/fixtures/sample-code-base-repo-map.txt +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/fixtures/watch.js +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/fixtures/watch.lisp +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/fixtures/watch.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/fixtures/watch_question.js +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/help/test_help.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/hooks/__init__.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/hooks/test_base.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/hooks/test_manager.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/hooks/test_registry.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/mcp/__init__.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/mcp/test_manager.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/scrape/test_playwright_disable.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/scrape/test_scrape.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/test_conversation_integration.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/test_conversation_system.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/tools/test_git_branch.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/tools/test_git_diff.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/tools/test_grep.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/tools/test_insert_block.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/tests/tools/test_registry.py +0 -0
- {cecli_dev-0.97.3 → cecli_dev-0.97.4}/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.97.
|
|
3
|
+
Version: 0.97.4
|
|
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
|
|
@@ -84,12 +84,12 @@ Dynamic: license-file
|
|
|
84
84
|
|
|
85
85
|
## Why `cecli`?
|
|
86
86
|
|
|
87
|
-
`cecli` (probably pronounced like "Cecily"
|
|
88
|
-
Aider is a fantastic piece of software with a wonderful community but it has been painfully slow in receiving updates in the quickly evolving AI tooling space.
|
|
87
|
+
`cecli` (probably pronounced like "Cecily") is yet another cli agent crafted for extensibility and customization. Originally a fork of the [Aider](https://cecli.dev/) AI pair programming tool, we aim to make agentic coding as maximally effective as it can be based on the growing capabilities of large language models.
|
|
89
88
|
|
|
90
|
-
We aim to foster an open, collaborative ecosystem where new features, experiments, and improvements can be developed and shared rapidly. We believe in
|
|
89
|
+
We aim to foster an open, collaborative ecosystem where new features, experiments, and improvements can be developed and shared rapidly. We believe in the principles of FOSS and actively welcome contributors of all skill levels.
|
|
91
90
|
|
|
92
91
|
If you are looking for bleeding-edge features or want to get your hands dirty with the internals of an AI coding agent, here's your sign.
|
|
92
|
+
|
|
93
93
|
LLMs are a part of our lives from here on out so join us in learning about and crafting the future.
|
|
94
94
|
|
|
95
95
|
### Links
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
## Why `cecli`?
|
|
2
2
|
|
|
3
|
-
`cecli` (probably pronounced like "Cecily"
|
|
4
|
-
Aider is a fantastic piece of software with a wonderful community but it has been painfully slow in receiving updates in the quickly evolving AI tooling space.
|
|
3
|
+
`cecli` (probably pronounced like "Cecily") is yet another cli agent crafted for extensibility and customization. Originally a fork of the [Aider](https://cecli.dev/) AI pair programming tool, we aim to make agentic coding as maximally effective as it can be based on the growing capabilities of large language models.
|
|
5
4
|
|
|
6
|
-
We aim to foster an open, collaborative ecosystem where new features, experiments, and improvements can be developed and shared rapidly. We believe in
|
|
5
|
+
We aim to foster an open, collaborative ecosystem where new features, experiments, and improvements can be developed and shared rapidly. We believe in the principles of FOSS and actively welcome contributors of all skill levels.
|
|
7
6
|
|
|
8
7
|
If you are looking for bleeding-edge features or want to get your hands dirty with the internals of an AI coding agent, here's your sign.
|
|
8
|
+
|
|
9
9
|
LLMs are a part of our lives from here on out so join us in learning about and crafting the future.
|
|
10
10
|
|
|
11
11
|
### Links
|
|
@@ -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.97.
|
|
32
|
-
__version_tuple__ = version_tuple = (0, 97,
|
|
31
|
+
__version__ = version = '0.97.4'
|
|
32
|
+
__version_tuple__ = version_tuple = (0, 97, 4)
|
|
33
33
|
|
|
34
|
-
__commit_id__ = commit_id = '
|
|
34
|
+
__commit_id__ = commit_id = 'g3f41a1bc9'
|
|
@@ -260,6 +260,12 @@ def get_parser(default_config_files, git_root):
|
|
|
260
260
|
default=3,
|
|
261
261
|
help="Maximum number of retries a model gets on malformed outputs (default: 3)",
|
|
262
262
|
)
|
|
263
|
+
group.add_argument(
|
|
264
|
+
"--cost-limit",
|
|
265
|
+
type=float,
|
|
266
|
+
default=None,
|
|
267
|
+
help="Cost limit per session, exceeding this forces prompt confirmation (default: None)",
|
|
268
|
+
)
|
|
263
269
|
group.add_argument(
|
|
264
270
|
"--file-diffs",
|
|
265
271
|
action=argparse.BooleanOptionalAction,
|
|
@@ -90,9 +90,13 @@ class AgentCoder(Coder):
|
|
|
90
90
|
self.skip_cli_confirmations = False
|
|
91
91
|
self.agent_finished = False
|
|
92
92
|
self.agent_config = self._get_agent_config()
|
|
93
|
+
self._setup_agent()
|
|
93
94
|
ToolRegistry.build_registry(agent_config=self.agent_config)
|
|
94
95
|
super().__init__(*args, **kwargs)
|
|
95
96
|
|
|
97
|
+
def _setup_agent(self):
|
|
98
|
+
os.makedirs(".cecli/workspace", exist_ok=True)
|
|
99
|
+
|
|
96
100
|
def _get_agent_config(self):
|
|
97
101
|
"""
|
|
98
102
|
Parse and return agent configuration from args.agent_config.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import asyncio
|
|
2
2
|
|
|
3
3
|
from ..commands import SwitchCoderSignal
|
|
4
|
-
from ..helpers.conversation import ConversationManager
|
|
4
|
+
from ..helpers.conversation import ConversationManager
|
|
5
5
|
from .ask_coder import AskCoder
|
|
6
6
|
from .base_coder import Coder
|
|
7
7
|
|
|
@@ -61,9 +61,7 @@ class ArchitectCoder(AskCoder):
|
|
|
61
61
|
editor_coder = await Coder.create(**new_kwargs)
|
|
62
62
|
|
|
63
63
|
# Re-initialize ConversationManager with editor coder
|
|
64
|
-
ConversationManager.initialize(
|
|
65
|
-
editor_coder, reset=True, reformat=True, preserve_tags=[MessageTag.DONE, MessageTag.CUR]
|
|
66
|
-
)
|
|
64
|
+
ConversationManager.initialize(editor_coder, reset=True, reformat=True, preserve_tags=True)
|
|
67
65
|
|
|
68
66
|
if self.verbose:
|
|
69
67
|
editor_coder.show_announcements()
|
|
@@ -84,7 +82,7 @@ class ArchitectCoder(AskCoder):
|
|
|
84
82
|
original_coder or self,
|
|
85
83
|
reset=True,
|
|
86
84
|
reformat=True,
|
|
87
|
-
preserve_tags=
|
|
85
|
+
preserve_tags=True,
|
|
88
86
|
)
|
|
89
87
|
|
|
90
88
|
self.total_cost = editor_coder.total_cost
|
|
@@ -96,7 +94,7 @@ class ArchitectCoder(AskCoder):
|
|
|
96
94
|
original_coder or self,
|
|
97
95
|
reset=True,
|
|
98
96
|
reformat=True,
|
|
99
|
-
preserve_tags=
|
|
97
|
+
preserve_tags=True,
|
|
100
98
|
)
|
|
101
99
|
|
|
102
100
|
raise SwitchCoderSignal(main_model=self.main_model, edit_format="architect")
|
|
@@ -32,7 +32,7 @@ from uuid import uuid4 as generate_unique_id
|
|
|
32
32
|
|
|
33
33
|
import httpx
|
|
34
34
|
from litellm import experimental_mcp_client
|
|
35
|
-
from litellm.types.utils import
|
|
35
|
+
from litellm.types.utils import ModelResponse
|
|
36
36
|
from prompt_toolkit.patch_stdout import patch_stdout
|
|
37
37
|
from rich.console import Console
|
|
38
38
|
|
|
@@ -40,7 +40,7 @@ import cecli.prompts.utils.system as prompts
|
|
|
40
40
|
from cecli import __version__, models, urls, utils
|
|
41
41
|
from cecli.commands import Commands, SwitchCoderSignal
|
|
42
42
|
from cecli.exceptions import LiteLLMExceptions
|
|
43
|
-
from cecli.helpers import command_parser, coroutines, nested
|
|
43
|
+
from cecli.helpers import command_parser, coroutines, nested, responses
|
|
44
44
|
from cecli.helpers.conversation import (
|
|
45
45
|
ConversationChunks,
|
|
46
46
|
ConversationManager,
|
|
@@ -157,6 +157,7 @@ class Coder:
|
|
|
157
157
|
last_user_message = ""
|
|
158
158
|
uuid = ""
|
|
159
159
|
model_kwargs = {}
|
|
160
|
+
cost_multiplier = 1
|
|
160
161
|
|
|
161
162
|
# Task coordination state variables
|
|
162
163
|
input_running = False
|
|
@@ -211,34 +212,14 @@ class Coder:
|
|
|
211
212
|
|
|
212
213
|
use_kwargs = dict(from_coder.original_kwargs) # copy orig kwargs
|
|
213
214
|
|
|
214
|
-
# If the edit format changes, we can't leave old ASSISTANT
|
|
215
|
-
# messages in the chat history. The old edit format will
|
|
216
|
-
# confused the new LLM. It may try and imitate it, disobeying
|
|
217
|
-
# the system prompt.
|
|
218
|
-
# Get DONE messages from ConversationManager
|
|
219
|
-
done_messages = ConversationManager.get_messages_dict(MessageTag.DONE)
|
|
220
|
-
if edit_format != from_coder.edit_format and done_messages and summarize_from_coder:
|
|
221
|
-
try:
|
|
222
|
-
io.tool_warning("Summarizing messages, please wait...")
|
|
223
|
-
done_messages = await from_coder.summarizer.summarize_all(done_messages)
|
|
224
|
-
except (KeyboardInterrupt, ValueError):
|
|
225
|
-
# If summarization fails, keep the original messages and warn the user
|
|
226
|
-
io.tool_warning(
|
|
227
|
-
"Chat history summarization failed, continuing with full history"
|
|
228
|
-
)
|
|
229
|
-
|
|
230
|
-
# Bring along context from the old Coder
|
|
231
|
-
# Get CUR messages from ConversationManager
|
|
232
|
-
cur_messages = ConversationManager.get_messages_dict(MessageTag.CUR)
|
|
233
|
-
|
|
234
215
|
update = dict(
|
|
235
216
|
fnames=list(from_coder.abs_fnames),
|
|
236
217
|
read_only_fnames=list(from_coder.abs_read_only_fnames), # Copy read-only files
|
|
237
218
|
read_only_stubs_fnames=list(
|
|
238
219
|
from_coder.abs_read_only_stubs_fnames
|
|
239
220
|
), # Copy read-only stubs
|
|
240
|
-
done_messages=
|
|
241
|
-
cur_messages=
|
|
221
|
+
done_messages=[],
|
|
222
|
+
cur_messages=[],
|
|
242
223
|
coder_commit_hashes=from_coder.coder_commit_hashes,
|
|
243
224
|
commands=from_coder.commands.clone(),
|
|
244
225
|
total_cost=from_coder.total_cost,
|
|
@@ -415,22 +396,6 @@ class Coder:
|
|
|
415
396
|
self.add_gitignore_files = add_gitignore_files
|
|
416
397
|
self.abs_read_only_stubs_fnames = set()
|
|
417
398
|
|
|
418
|
-
# Always use ConversationManager as the source of truth
|
|
419
|
-
# Add any provided messages to ConversationManager
|
|
420
|
-
if done_messages:
|
|
421
|
-
for msg in done_messages:
|
|
422
|
-
ConversationManager.add_message(
|
|
423
|
-
message_dict=msg,
|
|
424
|
-
tag=MessageTag.DONE,
|
|
425
|
-
)
|
|
426
|
-
|
|
427
|
-
if cur_messages:
|
|
428
|
-
for msg in cur_messages:
|
|
429
|
-
ConversationManager.add_message(
|
|
430
|
-
message_dict=msg,
|
|
431
|
-
tag=MessageTag.CUR,
|
|
432
|
-
)
|
|
433
|
-
|
|
434
399
|
self.io = io
|
|
435
400
|
self.io.coder = weakref.ref(self)
|
|
436
401
|
|
|
@@ -1616,6 +1581,18 @@ class Coder:
|
|
|
1616
1581
|
self.reflected_message = None
|
|
1617
1582
|
self.tool_reflection = False
|
|
1618
1583
|
|
|
1584
|
+
if float(self.total_cost) > self.cost_multiplier * (
|
|
1585
|
+
nested.getter(self.args, "cost_limit", float("inf")) or float("inf")
|
|
1586
|
+
):
|
|
1587
|
+
if await self.io.confirm_ask(
|
|
1588
|
+
"You have reached your configured cost limit. Continue?",
|
|
1589
|
+
group_response="Cost Limit",
|
|
1590
|
+
explicit_yes_required=True,
|
|
1591
|
+
):
|
|
1592
|
+
Coder.cost_multiplier += 1
|
|
1593
|
+
else:
|
|
1594
|
+
return
|
|
1595
|
+
|
|
1619
1596
|
async for _ in self.send_message(message):
|
|
1620
1597
|
pass
|
|
1621
1598
|
|
|
@@ -2405,7 +2382,7 @@ class Coder:
|
|
|
2405
2382
|
force=True, # Force update existing message
|
|
2406
2383
|
)
|
|
2407
2384
|
|
|
2408
|
-
if edited and self.auto_test:
|
|
2385
|
+
if edited and self.auto_test and self.test_cmd:
|
|
2409
2386
|
test_errors = await self.commands.execute("test", self.test_cmd)
|
|
2410
2387
|
self.test_outcome = not test_errors
|
|
2411
2388
|
if test_errors:
|
|
@@ -3334,66 +3311,16 @@ class Coder:
|
|
|
3334
3311
|
# If no native tool calls, check if the content contains JSON tool calls
|
|
3335
3312
|
# This handles models that write JSON in text instead of using native calling
|
|
3336
3313
|
if not self.partial_response_tool_calls and self.partial_response_content:
|
|
3337
|
-
|
|
3338
|
-
|
|
3339
|
-
|
|
3340
|
-
|
|
3341
|
-
|
|
3342
|
-
|
|
3343
|
-
|
|
3344
|
-
|
|
3345
|
-
|
|
3346
|
-
|
|
3347
|
-
try:
|
|
3348
|
-
json_obj = json.loads(chunk)
|
|
3349
|
-
if (
|
|
3350
|
-
isinstance(json_obj, dict)
|
|
3351
|
-
and "name" in json_obj
|
|
3352
|
-
and "arguments" in json_obj
|
|
3353
|
-
):
|
|
3354
|
-
# Create a Pydantic model for the tool call
|
|
3355
|
-
function_obj = Function(
|
|
3356
|
-
name=json_obj["name"],
|
|
3357
|
-
arguments=(
|
|
3358
|
-
json.dumps(json_obj["arguments"])
|
|
3359
|
-
if isinstance(json_obj["arguments"], (dict, list))
|
|
3360
|
-
else str(json_obj["arguments"])
|
|
3361
|
-
),
|
|
3362
|
-
)
|
|
3363
|
-
tool_call_obj = ChatCompletionMessageToolCall(
|
|
3364
|
-
type="function",
|
|
3365
|
-
function=function_obj,
|
|
3366
|
-
id=f"call_{len(extracted_calls)}_{int(time.time())}_{chunk_index}",
|
|
3367
|
-
)
|
|
3368
|
-
extracted_calls.append(tool_call_obj)
|
|
3369
|
-
elif isinstance(json_obj, list):
|
|
3370
|
-
for item in json_obj:
|
|
3371
|
-
if (
|
|
3372
|
-
isinstance(item, dict)
|
|
3373
|
-
and "name" in item
|
|
3374
|
-
and "arguments" in item
|
|
3375
|
-
):
|
|
3376
|
-
function_obj = Function(
|
|
3377
|
-
name=item["name"],
|
|
3378
|
-
arguments=(
|
|
3379
|
-
json.dumps(item["arguments"])
|
|
3380
|
-
if isinstance(item["arguments"], (dict, list))
|
|
3381
|
-
else str(item["arguments"])
|
|
3382
|
-
),
|
|
3383
|
-
)
|
|
3384
|
-
tool_call_obj = ChatCompletionMessageToolCall(
|
|
3385
|
-
type="function",
|
|
3386
|
-
function=function_obj,
|
|
3387
|
-
id=f"call_{len(extracted_calls)}_{int(time.time())}_{chunk_index}",
|
|
3388
|
-
)
|
|
3389
|
-
extracted_calls.append(tool_call_obj)
|
|
3390
|
-
except json.JSONDecodeError:
|
|
3391
|
-
continue
|
|
3392
|
-
|
|
3393
|
-
if extracted_calls:
|
|
3394
|
-
self.partial_response_tool_calls = extracted_calls
|
|
3395
|
-
except Exception:
|
|
3396
|
-
pass
|
|
3314
|
+
extracted_calls = responses.extract_tools_from_content_json(
|
|
3315
|
+
self.partial_response_content
|
|
3316
|
+
)
|
|
3317
|
+
if not extracted_calls:
|
|
3318
|
+
extracted_calls = responses.extract_tools_from_content_xml(
|
|
3319
|
+
self.partial_response_content
|
|
3320
|
+
)
|
|
3321
|
+
|
|
3322
|
+
if extracted_calls:
|
|
3323
|
+
self.partial_response_tool_calls = extracted_calls
|
|
3397
3324
|
|
|
3398
3325
|
return response, func_err, content_err
|
|
3399
3326
|
|
|
@@ -3,7 +3,7 @@ from typing import List
|
|
|
3
3
|
import cecli.models as models
|
|
4
4
|
from cecli.commands.utils.base_command import BaseCommand
|
|
5
5
|
from cecli.commands.utils.helpers import format_command_result
|
|
6
|
-
from cecli.helpers.conversation import ConversationManager
|
|
6
|
+
from cecli.helpers.conversation import ConversationManager
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
class AgentModelCommand(BaseCommand):
|
|
@@ -69,7 +69,7 @@ class AgentModelCommand(BaseCommand):
|
|
|
69
69
|
temp_coder,
|
|
70
70
|
reset=True,
|
|
71
71
|
reformat=True,
|
|
72
|
-
preserve_tags=
|
|
72
|
+
preserve_tags=True,
|
|
73
73
|
)
|
|
74
74
|
|
|
75
75
|
verbose = kwargs.get("verbose", False)
|
|
@@ -86,7 +86,7 @@ class AgentModelCommand(BaseCommand):
|
|
|
86
86
|
original_coder,
|
|
87
87
|
reset=True,
|
|
88
88
|
reformat=True,
|
|
89
|
-
preserve_tags=
|
|
89
|
+
preserve_tags=True,
|
|
90
90
|
)
|
|
91
91
|
|
|
92
92
|
# Restore the original model configuration
|
|
@@ -3,7 +3,7 @@ from typing import List
|
|
|
3
3
|
import cecli.models as models
|
|
4
4
|
from cecli.commands.utils.base_command import BaseCommand
|
|
5
5
|
from cecli.commands.utils.helpers import format_command_result
|
|
6
|
-
from cecli.helpers.conversation import ConversationManager
|
|
6
|
+
from cecli.helpers.conversation import ConversationManager
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
class EditorModelCommand(BaseCommand):
|
|
@@ -69,7 +69,7 @@ class EditorModelCommand(BaseCommand):
|
|
|
69
69
|
temp_coder,
|
|
70
70
|
reset=True,
|
|
71
71
|
reformat=True,
|
|
72
|
-
preserve_tags=
|
|
72
|
+
preserve_tags=True,
|
|
73
73
|
)
|
|
74
74
|
|
|
75
75
|
verbose = kwargs.get("verbose", False)
|
|
@@ -86,7 +86,7 @@ class EditorModelCommand(BaseCommand):
|
|
|
86
86
|
original_coder,
|
|
87
87
|
reset=True,
|
|
88
88
|
reformat=True,
|
|
89
|
-
preserve_tags=
|
|
89
|
+
preserve_tags=True,
|
|
90
90
|
)
|
|
91
91
|
|
|
92
92
|
# Restore the original model configuration
|
|
@@ -3,7 +3,7 @@ from typing import List
|
|
|
3
3
|
import cecli.models as models
|
|
4
4
|
from cecli.commands.utils.base_command import BaseCommand
|
|
5
5
|
from cecli.commands.utils.helpers import format_command_result
|
|
6
|
-
from cecli.helpers.conversation import ConversationManager
|
|
6
|
+
from cecli.helpers.conversation import ConversationManager
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
class ModelCommand(BaseCommand):
|
|
@@ -73,7 +73,7 @@ class ModelCommand(BaseCommand):
|
|
|
73
73
|
temp_coder,
|
|
74
74
|
reset=True,
|
|
75
75
|
reformat=True,
|
|
76
|
-
preserve_tags=
|
|
76
|
+
preserve_tags=True,
|
|
77
77
|
)
|
|
78
78
|
|
|
79
79
|
verbose = kwargs.get("verbose", False)
|
|
@@ -90,7 +90,7 @@ class ModelCommand(BaseCommand):
|
|
|
90
90
|
original_coder,
|
|
91
91
|
reset=True,
|
|
92
92
|
reformat=True,
|
|
93
|
-
preserve_tags=
|
|
93
|
+
preserve_tags=True,
|
|
94
94
|
)
|
|
95
95
|
|
|
96
96
|
# Restore the original model configuration
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
from abc import ABC, ABCMeta, abstractmethod
|
|
2
2
|
from typing import List
|
|
3
3
|
|
|
4
|
-
from cecli.helpers.conversation import ConversationManager
|
|
4
|
+
from cecli.helpers.conversation import ConversationManager
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
class CommandMeta(ABCMeta):
|
|
@@ -152,9 +152,7 @@ class BaseCommand(ABC, metaclass=CommandMeta):
|
|
|
152
152
|
new_coder = await Coder.create(**kwargs)
|
|
153
153
|
|
|
154
154
|
# Re-initialize ConversationManager with new coder
|
|
155
|
-
ConversationManager.initialize(
|
|
156
|
-
new_coder, reset=True, reformat=True, preserve_tags=[MessageTag.DONE, MessageTag.CUR]
|
|
157
|
-
)
|
|
155
|
+
ConversationManager.initialize(new_coder, reset=True, reformat=True, preserve_tags=True)
|
|
158
156
|
|
|
159
157
|
await new_coder.generate(user_message=user_msg, preproc=False)
|
|
160
158
|
coder.coder_commit_hashes = new_coder.coder_commit_hashes
|
|
@@ -164,7 +162,7 @@ class BaseCommand(ABC, metaclass=CommandMeta):
|
|
|
164
162
|
original_coder,
|
|
165
163
|
reset=True,
|
|
166
164
|
reformat=True,
|
|
167
|
-
preserve_tags=
|
|
165
|
+
preserve_tags=True,
|
|
168
166
|
)
|
|
169
167
|
|
|
170
168
|
from cecli.commands import SwitchCoderSignal
|
|
@@ -3,7 +3,7 @@ from typing import List
|
|
|
3
3
|
import cecli.models as models
|
|
4
4
|
from cecli.commands.utils.base_command import BaseCommand
|
|
5
5
|
from cecli.commands.utils.helpers import format_command_result
|
|
6
|
-
from cecli.helpers.conversation import ConversationManager
|
|
6
|
+
from cecli.helpers.conversation import ConversationManager
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
class WeakModelCommand(BaseCommand):
|
|
@@ -68,7 +68,7 @@ class WeakModelCommand(BaseCommand):
|
|
|
68
68
|
temp_coder,
|
|
69
69
|
reset=True,
|
|
70
70
|
reformat=True,
|
|
71
|
-
preserve_tags=
|
|
71
|
+
preserve_tags=True,
|
|
72
72
|
)
|
|
73
73
|
|
|
74
74
|
verbose = kwargs.get("verbose", False)
|
|
@@ -85,7 +85,7 @@ class WeakModelCommand(BaseCommand):
|
|
|
85
85
|
original_coder,
|
|
86
86
|
reset=True,
|
|
87
87
|
reformat=True,
|
|
88
|
-
preserve_tags=
|
|
88
|
+
preserve_tags=True,
|
|
89
89
|
)
|
|
90
90
|
|
|
91
91
|
# Restore the original model configuration
|
|
@@ -2,7 +2,7 @@ import copy
|
|
|
2
2
|
import json
|
|
3
3
|
import time
|
|
4
4
|
import weakref
|
|
5
|
-
from typing import Any, Dict, List, Optional, Tuple
|
|
5
|
+
from typing import Any, Dict, List, Optional, Tuple, Union
|
|
6
6
|
|
|
7
7
|
from cecli.helpers import nested
|
|
8
8
|
|
|
@@ -38,7 +38,7 @@ class ConversationManager:
|
|
|
38
38
|
coder,
|
|
39
39
|
reset: bool = False,
|
|
40
40
|
reformat: bool = False,
|
|
41
|
-
preserve_tags: Optional[List[str]] = None,
|
|
41
|
+
preserve_tags: Optional[Union[List[str], bool]] = None,
|
|
42
42
|
) -> None:
|
|
43
43
|
"""
|
|
44
44
|
Set up singleton with weak reference to coder.
|
|
@@ -56,6 +56,14 @@ class ConversationManager:
|
|
|
56
56
|
cls._initialized = True
|
|
57
57
|
|
|
58
58
|
preserved_messages = []
|
|
59
|
+
if preserve_tags is True:
|
|
60
|
+
preserve_tags = [
|
|
61
|
+
MessageTag.DONE,
|
|
62
|
+
MessageTag.CUR,
|
|
63
|
+
MessageTag.DIFFS,
|
|
64
|
+
MessageTag.FILE_CONTEXTS,
|
|
65
|
+
]
|
|
66
|
+
|
|
59
67
|
if reset and preserve_tags:
|
|
60
68
|
# New approach: loop over every single tag type and only clear tags NOT in preserve_tags
|
|
61
69
|
# Get all MessageTag values
|
|
@@ -78,20 +86,10 @@ class ConversationManager:
|
|
|
78
86
|
|
|
79
87
|
# If preserve_tags is truthy, re-add preserved messages with updated timestamps after reformat block
|
|
80
88
|
if preserve_tags and preserved_messages:
|
|
81
|
-
|
|
82
|
-
cls.clear_tag(tag_type)
|
|
83
|
-
|
|
89
|
+
offset = 0
|
|
84
90
|
for msg in preserved_messages:
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
tag=MessageTag(msg.tag),
|
|
88
|
-
priority=msg.priority,
|
|
89
|
-
timestamp=time.monotonic_ns(), # Updated timestamp
|
|
90
|
-
mark_for_delete=msg.mark_for_delete,
|
|
91
|
-
force=True,
|
|
92
|
-
update_timestamp=True,
|
|
93
|
-
message_id=msg.message_id,
|
|
94
|
-
)
|
|
91
|
+
offset += 1
|
|
92
|
+
msg.timestamp = time.monotonic_ns() + offset
|
|
95
93
|
|
|
96
94
|
# Enable debug mode if coder has verbose attribute and it's True
|
|
97
95
|
if hasattr(coder, "verbose") and coder.verbose:
|
|
@@ -372,15 +370,22 @@ class ConversationManager:
|
|
|
372
370
|
Returns:
|
|
373
371
|
True if a message was removed, False otherwise
|
|
374
372
|
"""
|
|
375
|
-
for
|
|
376
|
-
|
|
377
|
-
|
|
373
|
+
messages_to_remove = [m for m in cls._messages if m.hash_key == hash_key]
|
|
374
|
+
if not messages_to_remove:
|
|
375
|
+
return False
|
|
376
|
+
|
|
377
|
+
tags_to_clear = set()
|
|
378
|
+
for message in messages_to_remove:
|
|
379
|
+
cls._messages.remove(message)
|
|
380
|
+
if message.message_id in cls._message_index:
|
|
378
381
|
del cls._message_index[message.message_id]
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
382
|
+
tags_to_clear.add(message.tag)
|
|
383
|
+
|
|
384
|
+
for tag in tags_to_clear:
|
|
385
|
+
cls._tag_cache.pop(tag, None)
|
|
386
|
+
cls._tag_cache.pop(cls._ALL_MESSAGES_CACHE_KEY, None)
|
|
387
|
+
|
|
388
|
+
return True
|
|
384
389
|
|
|
385
390
|
@classmethod
|
|
386
391
|
def get_tag_messages(cls, tag: str) -> List[BaseMessage]:
|