cecli-dev 0.100.5__tar.gz → 0.100.6rc1__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.100.5 → cecli_dev-0.100.6rc1}/PKG-INFO +1 -1
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/_version.py +3 -3
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/coders/agent_coder.py +1 -1
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/helpers/conversation/files.py +6 -3
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/helpers/hashline.py +26 -109
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/helpers/hashpos/hashpos.py +4 -6
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/prompts/agent.yml +2 -2
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/prompts/hashline.yml +1 -1
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/tools/edit_text.py +7 -7
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/tools/grep.py +4 -14
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/tools/read_range.py +141 -83
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/tools/validations/validations.py +103 -11
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli_dev.egg-info/PKG-INFO +1 -1
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli_dev.egg-info/SOURCES.txt +1 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/tools/test_get_lines.py +10 -10
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/tools/test_insert_block.py +1 -1
- cecli_dev-0.100.6rc1/tests/tools/test_read_range_execute.py +544 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/tools/validations.py +206 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/.dockerignore +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/.flake8 +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/.gitattributes +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/.github/ISSUE_TEMPLATE/issue.yml +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/.github/workflows/check_pypi_version.yml +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/.github/workflows/docker-build-test.yml +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/.github/workflows/docker-release.yml +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/.github/workflows/issues.yml +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/.github/workflows/pages.yml +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/.github/workflows/pre-commit.yml +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/.github/workflows/release.yml +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/.github/workflows/ubuntu-tests.yml +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/.github/workflows/windows-tests.yml +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/.github/workflows/windows_check_pypi_version.yml +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/.gitignore +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/.pre-commit-config.yaml +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/CHANGELOG.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/CNAME +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/CONTRIBUTING.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/HISTORY.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/LICENSE.txt +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/MANIFEST.in +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/README.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/benchmark/Dockerfile +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/benchmark/README.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/benchmark/__init__.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/benchmark/benchmark.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/benchmark/benchmark_classic.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/benchmark/clone-exercism.sh +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/benchmark/cpp-test.sh +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/benchmark/docker.sh +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/benchmark/docker_build.sh +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/benchmark/install-docker-ubuntu.sh +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/benchmark/npm-test.sh +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/benchmark/over_time.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/benchmark/plot.sh +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/benchmark/plots.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/benchmark/problem_stats.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/benchmark/prompts.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/benchmark/refactor_tools.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/benchmark/rsync.sh +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/benchmark/rungrid.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/benchmark/swe-bench-lite.txt +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/benchmark/swe-bench.txt +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/benchmark/swe_bench.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/benchmark/test_benchmark.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/benchmark/variations.1.sh +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/benchmark/variations.2.sh +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/benchmark/variations.3.sh +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/benchmark/variations.4.sh +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/__init__.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/__main__.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/args.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/args_formatter.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/change_tracker.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/coders/__init__.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/coders/architect_coder.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/coders/ask_coder.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/coders/base_coder.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/coders/chat_chunks.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/coders/context_coder.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/coders/copypaste_coder.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/coders/editblock_coder.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/coders/editblock_fenced_coder.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/coders/editblock_func_coder.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/coders/editor_diff_fenced_coder.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/coders/editor_editblock_coder.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/coders/editor_whole_coder.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/coders/hashline_coder.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/coders/help_coder.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/coders/patch_coder.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/coders/search_replace.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/coders/shell.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/coders/single_wholefile_func_coder.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/coders/sub_agent_coder.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/coders/udiff_coder.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/coders/udiff_simple.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/coders/wholefile_coder.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/coders/wholefile_func_coder.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/__init__.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/add.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/agent.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/agent_model.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/architect.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/ask.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/chat_mode.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/clear.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/code.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/command_prefix.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/commit.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/compact.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/context.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/context_blocks.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/context_management.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/copy.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/copy_context.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/core.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/diff.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/drop.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/editor.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/editor_model.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/exclude_skill.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/exit.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/git.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/hashline.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/help.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/history_search.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/hooks.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/include_skill.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/lint.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/list_sessions.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/list_skills.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/load.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/load_hook.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/load_mcp.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/load_session.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/load_skill.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/ls.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/map.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/map_refresh.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/merge.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/model.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/models.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/multiline_mode.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/paste.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/quit.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/read_only.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/read_only_stub.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/reap_agent.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/reasoning_effort.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/remove_hook.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/remove_mcp.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/remove_skill.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/report.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/reset.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/rules.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/run.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/save.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/save_session.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/settings.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/spawn_agent.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/switch_agent.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/terminal_data/linux.keytab +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/terminal_setup.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/test.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/think_tokens.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/tokens.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/undo.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/utils/__init__.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/utils/base_command.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/utils/helpers.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/utils/registry.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/utils/save_load_manager.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/voice.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/weak_model.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/web.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/commands/workspace.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/deprecated_args.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/diffs.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/dump.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/editor.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/exceptions.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/format_settings.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/help.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/help_pats.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/helpers/__init__.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/helpers/agents/__init__.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/helpers/agents/config.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/helpers/agents/service.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/helpers/background_commands.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/helpers/command_parser.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/helpers/conversation/__init__.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/helpers/conversation/base_message.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/helpers/conversation/integration.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/helpers/conversation/manager.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/helpers/conversation/service.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/helpers/conversation/tags.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/helpers/conversation/utils.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/helpers/copypaste.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/helpers/coroutines.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/helpers/crypto.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/helpers/file_searcher.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/helpers/file_system/__init__.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/helpers/file_system/builders.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/helpers/file_system/ignore.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/helpers/file_system/ngram_index.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/helpers/file_system/service.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/helpers/file_system/trie_index.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/helpers/grep_ast/__init__.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/helpers/grep_ast/dump.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/helpers/grep_ast/grep_ast.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/helpers/grep_ast/main.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/helpers/grep_ast/parsers.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/helpers/grep_ast/tsl.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/helpers/hashpos/__init__.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/helpers/hashpos/hashpos.v1.bak +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/helpers/io_proxy.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/helpers/leak_detect.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/helpers/model_providers.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/helpers/monorepo/__init__.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/helpers/monorepo/config.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/helpers/monorepo/local_workspace.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/helpers/monorepo/project.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/helpers/monorepo/workspace.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/helpers/monorepo/worktree.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/helpers/nested.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/helpers/observations/__init__.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/helpers/observations/service.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/helpers/plugin_manager.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/helpers/profiler.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/helpers/requests.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/helpers/responses.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/helpers/similarity.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/helpers/skills.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/history.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/hooks/__init__.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/hooks/base.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/hooks/integration.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/hooks/manager.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/hooks/registry.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/hooks/service.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/hooks/types.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/interruptible_input.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/io.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/linter.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/llm.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/main.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/mcp/__init__.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/mcp/manager.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/mcp/oauth.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/mcp/server.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/mcp/utils.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/mdstream.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/models.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/onboarding.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/prompts/__init__.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/prompts/architect.yml +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/prompts/ask.yml +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/prompts/base.yml +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/prompts/context.yml +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/prompts/copypaste.yml +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/prompts/editblock.yml +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/prompts/editblock_fenced.yml +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/prompts/editblock_func.yml +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/prompts/editor_diff_fenced.yml +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/prompts/editor_editblock.yml +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/prompts/editor_whole.yml +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/prompts/help.yml +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/prompts/patch.yml +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/prompts/single_wholefile_func.yml +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/prompts/subagent.yml +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/prompts/udiff.yml +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/prompts/udiff_simple.yml +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/prompts/utils/__init__.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/prompts/utils/registry.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/prompts/utils/system.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/prompts/wholefile.yml +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/prompts/wholefile_func.yml +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/queries/tree-sitter-language-pack/README.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/queries/tree-sitter-language-pack/arduino-tags.scm +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/queries/tree-sitter-language-pack/bash-tags.scm +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/queries/tree-sitter-language-pack/c-tags.scm +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/queries/tree-sitter-language-pack/chatito-tags.scm +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/queries/tree-sitter-language-pack/clojure-tags.scm +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/queries/tree-sitter-language-pack/commonlisp-tags.scm +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/queries/tree-sitter-language-pack/cpp-tags.scm +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/queries/tree-sitter-language-pack/csharp-tags.scm +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/queries/tree-sitter-language-pack/d-tags.scm +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/queries/tree-sitter-language-pack/dart-tags.scm +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/queries/tree-sitter-language-pack/elisp-tags.scm +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/queries/tree-sitter-language-pack/elixir-tags.scm +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/queries/tree-sitter-language-pack/elm-tags.scm +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/queries/tree-sitter-language-pack/gleam-tags.scm +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/queries/tree-sitter-language-pack/go-tags.scm +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/queries/tree-sitter-language-pack/java-tags.scm +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/queries/tree-sitter-language-pack/javascript-tags.scm +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/queries/tree-sitter-language-pack/lua-tags.scm +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/queries/tree-sitter-language-pack/matlab-tags.scm +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/queries/tree-sitter-language-pack/ocaml-tags.scm +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/queries/tree-sitter-language-pack/ocaml_interface-tags.scm +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/queries/tree-sitter-language-pack/pony-tags.scm +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/queries/tree-sitter-language-pack/properties-tags.scm +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/queries/tree-sitter-language-pack/python-tags.scm +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/queries/tree-sitter-language-pack/r-tags.scm +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/queries/tree-sitter-language-pack/racket-tags.scm +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/queries/tree-sitter-language-pack/ruby-tags.scm +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/queries/tree-sitter-language-pack/rust-tags.scm +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/queries/tree-sitter-language-pack/solidity-tags.scm +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/queries/tree-sitter-language-pack/swift-tags.scm +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/queries/tree-sitter-language-pack/udev-tags.scm +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/queries/tree-sitter-languages/README.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/queries/tree-sitter-languages/bash-tags.scm +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/queries/tree-sitter-languages/c-tags.scm +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/queries/tree-sitter-languages/c_sharp-tags.scm +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/queries/tree-sitter-languages/cpp-tags.scm +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/queries/tree-sitter-languages/dart-tags.scm +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/queries/tree-sitter-languages/elisp-tags.scm +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/queries/tree-sitter-languages/elixir-tags.scm +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/queries/tree-sitter-languages/elm-tags.scm +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/queries/tree-sitter-languages/fortran-tags.scm +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/queries/tree-sitter-languages/go-tags.scm +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/queries/tree-sitter-languages/haskell-tags.scm +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/queries/tree-sitter-languages/hcl-tags.scm +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/queries/tree-sitter-languages/java-tags.scm +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/queries/tree-sitter-languages/javascript-tags.scm +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/queries/tree-sitter-languages/julia-tags.scm +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/queries/tree-sitter-languages/kotlin-tags.scm +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/queries/tree-sitter-languages/matlab-tags.scm +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/queries/tree-sitter-languages/ocaml-tags.scm +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/queries/tree-sitter-languages/ocaml_interface-tags.scm +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/queries/tree-sitter-languages/php-tags.scm +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/queries/tree-sitter-languages/python-tags.scm +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/queries/tree-sitter-languages/ql-tags.scm +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/queries/tree-sitter-languages/ruby-tags.scm +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/queries/tree-sitter-languages/rust-tags.scm +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/queries/tree-sitter-languages/scala-tags.scm +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/queries/tree-sitter-languages/typescript-tags.scm +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/queries/tree-sitter-languages/zig-tags.scm +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/reasoning_tags.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/repo.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/repomap.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/report.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/resources/__init__.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/resources/model-metadata.json +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/resources/model-settings.yml +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/resources/providers.json +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/run_cmd.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/scrape.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/sendchat.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/sessions.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/special.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/tools/__init__.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/tools/_yield.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/tools/command.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/tools/command_interactive.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/tools/context_manager.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/tools/delegate.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/tools/explore_code.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/tools/git_branch.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/tools/git_diff.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/tools/git_log.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/tools/git_remote.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/tools/git_show.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/tools/git_status.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/tools/load_skill.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/tools/ls.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/tools/remove_skill.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/tools/thinking.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/tools/undo_change.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/tools/update_todo_list.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/tools/utils/base_tool.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/tools/utils/helpers.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/tools/utils/output.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/tools/utils/registry.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/tools/validations/__init__.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/tui/__init__.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/tui/app.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/tui/io.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/tui/styles.tcss +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/tui/widgets/__init__.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/tui/widgets/completion_bar.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/tui/widgets/file_list.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/tui/widgets/footer.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/tui/widgets/input_area.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/tui/widgets/input_container.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/tui/widgets/key_hints.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/tui/widgets/output.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/tui/widgets/status_bar.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/tui/widgets/subagent_pills.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/tui/worker.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/urls.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/utils.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/versioncheck.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/voice.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/waiting.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/watch.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/watch_prompts.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/Gemfile +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/_includes/blame.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/_includes/get-started.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/_includes/help-tip.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/_includes/help.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/_includes/install.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/_includes/keys.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/_includes/model-warnings.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/_includes/multi-line.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/_includes/python-m-aider.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/_includes/recording.css +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/_includes/recording.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/_includes/works-best.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/_sass/_features.scss +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/_sass/_footer.scss +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/_sass/_hero.scss +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/_sass/_info.scss +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/_sass/_layout.scss +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/_sass/_reset.scss +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/_sass/_testimonials.scss +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/_sass/_typography.scss +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/_sass/_variables.scss +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/_sass/custom/custom.scss +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/_sass/global-overrides.scss +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/docs/config/adv-model-settings.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/docs/config/agent-mode.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/docs/config/aider_conf.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/docs/config/api-keys.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/docs/config/custom-commands.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/docs/config/custom-system-prompts.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/docs/config/dotenv.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/docs/config/editor.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/docs/config/hooks.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/docs/config/mcp.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/docs/config/model-aliases.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/docs/config/model-configuration.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/docs/config/options.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/docs/config/reasoning.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/docs/config/security.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/docs/config/skills.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/docs/config/subagents.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/docs/config/tui.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/docs/config/workspaces.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/docs/config.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/docs/faq.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/docs/git.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/docs/index.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/docs/install/docker.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/docs/install/optional.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/docs/install.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/docs/languages.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/docs/legal/contributor-agreement.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/docs/legal/privacy.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/docs/llms/anthropic.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/docs/llms/azure.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/docs/llms/bedrock.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/docs/llms/cohere.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/docs/llms/deepseek.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/docs/llms/gemini.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/docs/llms/github.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/docs/llms/groq.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/docs/llms/lm-studio.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/docs/llms/ollama.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/docs/llms/openai-compat.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/docs/llms/openai.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/docs/llms/openrouter.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/docs/llms/other.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/docs/llms/vertex.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/docs/llms/warnings.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/docs/llms/xai.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/docs/llms.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/docs/more/analytics.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/docs/more/edit-formats.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/docs/more/infinite-output.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/docs/more-info.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/docs/repomap.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/docs/scripting.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/docs/troubleshooting/cecli-not-found.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/docs/troubleshooting/edit-errors.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/docs/troubleshooting/imports.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/docs/troubleshooting/models-and-keys.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/docs/troubleshooting/support.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/docs/troubleshooting/token-limits.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/docs/troubleshooting/warnings.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/docs/troubleshooting.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/docs/usage/commands.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/docs/usage/conventions.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/docs/usage/copypaste.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/docs/usage/images-urls.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/docs/usage/lint-test.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/docs/usage/modes.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/docs/usage/not-code.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/docs/usage/notifications.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/docs/usage/sessions.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/docs/usage/tips.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/docs/usage/voice.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/docs/usage/watch.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/docs/usage.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli/website/share/index.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli_dev.egg-info/dependency_links.txt +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli_dev.egg-info/entry_points.txt +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli_dev.egg-info/requires.txt +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/cecli_dev.egg-info/top_level.txt +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/docker/Dockerfile +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/docker/Dockerfile.local.nvidia.cuda.ubuntu +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/pyproject.toml +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/pytest.ini +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/requirements/common-constraints.txt +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/requirements/requirements-dev.in +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/requirements/requirements-dev.txt +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/requirements/requirements-help.in +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/requirements/requirements-help.txt +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/requirements/requirements-playwright.in +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/requirements/requirements-playwright.txt +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/requirements/requirements.in +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/requirements/tree-sitter.in +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/requirements.txt +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/scripts/30k-image.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/scripts/Dockerfile.jekyll +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/scripts/__init__.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/scripts/blame.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/scripts/clean_metadata.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/scripts/cost_analyzer.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/scripts/cost_calculator.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/scripts/dl_icons.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/scripts/filter-chat-mode.js +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/scripts/generate_providers.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/scripts/get_contributor_list.js +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/scripts/get_hashline.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/scripts/history_prompts.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/scripts/homepage.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/scripts/issues.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/scripts/jekyll_build.sh +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/scripts/jekyll_run.sh +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/scripts/logo_svg.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/scripts/pip-compile.sh +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/scripts/recording_audio.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/scripts/redact-cast.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/scripts/rename_to_cecli.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/scripts/tmux_record.sh +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/scripts/tsl_pack_langs.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/scripts/update-blame.sh +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/scripts/update-docs.sh +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/scripts/update-history.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/scripts/versionbump.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/scripts/yank-old-versions.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/setup.cfg +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/shim.pyproject.toml +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/__init__.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/basic/__init__.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/basic/conftest.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/basic/test_aws_credentials.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/basic/test_background_commands.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/basic/test_coder.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/basic/test_commands.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/basic/test_custom_commands.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/basic/test_deprecated.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/basic/test_editblock.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/basic/test_editor.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/basic/test_exceptions.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/basic/test_find_or_blocks.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/basic/test_hashline.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/basic/test_history.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/basic/test_io.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/basic/test_linter.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/basic/test_main.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/basic/test_model_info_manager.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/basic/test_model_provider_manager.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/basic/test_models.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/basic/test_onboarding.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/basic/test_plugin_manager.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/basic/test_prompts.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/basic/test_reasoning.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/basic/test_repo.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/basic/test_repomap.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/basic/test_run_cmd.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/basic/test_sanity_check_repo.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/basic/test_scripting.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/basic/test_sendchat.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/basic/test_session_args.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/basic/test_session_crypto.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/basic/test_sessions.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/basic/test_sessions_manager.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/basic/test_skills.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/basic/test_special.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/basic/test_ssl_verification.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/basic/test_udiff.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/basic/test_urls.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/basic/test_voice.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/basic/test_watch.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/basic/test_wholefile.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/coders/test_coder_switching.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/coders/test_copypaste_coder.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/commands/test_compaction.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/commands/test_switch_agent.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/conftest.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/conversations/test_conversation_integration.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/conversations/test_conversation_system.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/fixtures/chat-history-search-replace-gold.txt +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/fixtures/chat-history.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/fixtures/languages/arduino/test.ino +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/fixtures/languages/bash/test.sh +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/fixtures/languages/c/test.c +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/fixtures/languages/chatito/test.chatito +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/fixtures/languages/clojure/test.clj +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/fixtures/languages/commonlisp/test.lisp +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/fixtures/languages/cpp/test.cpp +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/fixtures/languages/csharp/test.cs +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/fixtures/languages/d/test.d +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/fixtures/languages/dart/test.dart +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/fixtures/languages/elisp/test.el +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/fixtures/languages/elixir/test.ex +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/fixtures/languages/elm/test.elm +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/fixtures/languages/gleam/test.gleam +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/fixtures/languages/go/test.go +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/fixtures/languages/haskell/test.hs +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/fixtures/languages/hcl/test.tf +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/fixtures/languages/java/test.java +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/fixtures/languages/javascript/test.js +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/fixtures/languages/kotlin/test.kt +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/fixtures/languages/lua/test.lua +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/fixtures/languages/matlab/test.m +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/fixtures/languages/ocaml/test.ml +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/fixtures/languages/ocaml_interface/test.mli +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/fixtures/languages/php/test.php +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/fixtures/languages/pony/test.pony +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/fixtures/languages/properties/test.properties +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/fixtures/languages/python/test.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/fixtures/languages/ql/test.ql +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/fixtures/languages/r/test.r +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/fixtures/languages/racket/test.rkt +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/fixtures/languages/ruby/test.rb +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/fixtures/languages/rust/test.rs +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/fixtures/languages/scala/test.scala +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/fixtures/languages/solidity/test.sol +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/fixtures/languages/swift/test.swift +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/fixtures/languages/tsx/test.tsx +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/fixtures/languages/typescript/test.ts +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/fixtures/languages/udev/test.rules +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/fixtures/languages/zig/test.zig +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/fixtures/sample-code-base/sample.js +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/fixtures/sample-code-base/sample.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/fixtures/sample-code-base-repo-map.txt +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/fixtures/watch.js +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/fixtures/watch.lisp +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/fixtures/watch.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/fixtures/watch_question.js +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/help/test_help.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/helpers/monorepo/LOCAL_WORKSPACE.md +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/helpers/monorepo/test_config.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/helpers/monorepo/test_config_active.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/helpers/monorepo/test_ignore_logic.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/helpers/monorepo/test_local_workspace.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/helpers/monorepo/test_repomap_workspace.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/helpers/monorepo/test_workspace.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/helpers/observations/test_observation_service.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/hooks/__init__.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/hooks/test_base.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/hooks/test_manager.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/hooks/test_registry.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/mcp/__init__.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/mcp/test_manager.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/scrape/test_playwright_disable.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/scrape/test_scrape.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/subagents/__init__.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/subagents/conftest.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/subagents/test_commands.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/subagents/test_config.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/subagents/test_delegate.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/subagents/test_finished.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/subagents/test_io_proxy.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/subagents/test_service.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/subagents/test_sub_agent_coder.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/tools/test_extractions.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/tools/test_git_branch.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/tools/test_git_diff.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/tools/test_grep.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/tools/test_registry.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/tools/test_tool_arguments.py +0 -0
- {cecli_dev-0.100.5 → cecli_dev-0.100.6rc1}/tests/tui/test_app.py +0 -0
|
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
|
|
|
18
18
|
commit_id: str | None
|
|
19
19
|
__commit_id__: str | None
|
|
20
20
|
|
|
21
|
-
__version__ = version = '0.100.
|
|
22
|
-
__version_tuple__ = version_tuple = (0, 100,
|
|
21
|
+
__version__ = version = '0.100.6rc1'
|
|
22
|
+
__version_tuple__ = version_tuple = (0, 100, 6, 'rc1')
|
|
23
23
|
|
|
24
|
-
__commit_id__ = commit_id = '
|
|
24
|
+
__commit_id__ = commit_id = 'gd52e51e0f'
|
|
@@ -1115,7 +1115,7 @@ class AgentCoder(Coder):
|
|
|
1115
1115
|
context_parts.append("## File Editing Tools Disabled")
|
|
1116
1116
|
context_parts.append(
|
|
1117
1117
|
"File editing tools are currently disabled. Use `ReadRange` to determine the"
|
|
1118
|
-
" current content
|
|
1118
|
+
" current content ID prefixes needed to perform an edit and activate them when"
|
|
1119
1119
|
" you are ready to edit a file."
|
|
1120
1120
|
)
|
|
1121
1121
|
|
|
@@ -281,14 +281,17 @@ class ConversationFiles:
|
|
|
281
281
|
diff_message = {
|
|
282
282
|
"role": "user",
|
|
283
283
|
"content": (
|
|
284
|
-
f"{rel_fname} has been updated.
|
|
285
|
-
f"
|
|
284
|
+
f"{rel_fname} has been updated. Review this git diff of the changes to"
|
|
285
|
+
f" ensure the modifications are intended:\n\n{diff}"
|
|
286
286
|
),
|
|
287
287
|
}
|
|
288
288
|
|
|
289
289
|
assistant_msg = {
|
|
290
290
|
"role": "assistant",
|
|
291
|
-
"content":
|
|
291
|
+
"content": (
|
|
292
|
+
f"Thank you for sharing this diff of the updates to {rel_fname}."
|
|
293
|
+
" I will review their contents next turn."
|
|
294
|
+
),
|
|
292
295
|
}
|
|
293
296
|
|
|
294
297
|
ConversationService.get_manager(coder).add_message(
|
|
@@ -650,6 +650,20 @@ def _apply_start_stitching(
|
|
|
650
650
|
# The replacement line matches the line being replaced
|
|
651
651
|
# Don't stitch to a line in lines_before_range
|
|
652
652
|
continue
|
|
653
|
+
|
|
654
|
+
# Require 2 consecutive matching lines to avoid false positives
|
|
655
|
+
# (single boilerplate lines like "import sys" or "def foo():"
|
|
656
|
+
# are too likely to be coincidental)
|
|
657
|
+
if line_idx + 1 < len(replacement_lines) and match_index + 1 < len(
|
|
658
|
+
lines_before_range_normalized
|
|
659
|
+
):
|
|
660
|
+
next_repl = replacement_lines[line_idx + 1]
|
|
661
|
+
next_repl_stripped = strip_hashline(next_repl)
|
|
662
|
+
if not next_repl_stripped.endswith("\n"):
|
|
663
|
+
next_repl_stripped += "\n"
|
|
664
|
+
if next_repl_stripped != lines_before_range_normalized[match_index + 1]:
|
|
665
|
+
continue # Only 1 line matches — likely coincidental
|
|
666
|
+
|
|
653
667
|
# Found a line that already exists before the range!
|
|
654
668
|
# This is a non-contiguous match - we need to "stitch" the replacement
|
|
655
669
|
# at this exact content match to prevent duplicate code structures
|
|
@@ -694,9 +708,9 @@ def _apply_start_stitching(
|
|
|
694
708
|
start_idx = new_start_idx
|
|
695
709
|
replacement_lines = new_replacement_lines
|
|
696
710
|
else:
|
|
697
|
-
# Can't extend backward due to overlap
|
|
698
|
-
#
|
|
699
|
-
|
|
711
|
+
# Can't extend backward due to overlap with another operation
|
|
712
|
+
# Don't truncate without extending — that would silently lose content
|
|
713
|
+
continue # Try next line instead
|
|
700
714
|
|
|
701
715
|
# We've found our stitching point, break out of the loop
|
|
702
716
|
break
|
|
@@ -772,6 +786,15 @@ def _apply_end_stitching(
|
|
|
772
786
|
# Check if this line exists anywhere in lines_after_range_normalized
|
|
773
787
|
try:
|
|
774
788
|
match_index = lines_after_range_normalized.index(replacement_line_stripped)
|
|
789
|
+
|
|
790
|
+
# Require 2 consecutive matching lines to reduce false positives
|
|
791
|
+
if line_idx - 1 >= 0 and match_index - 1 >= 0:
|
|
792
|
+
prev_repl = replacement_lines[line_idx - 1]
|
|
793
|
+
prev_repl_stripped = strip_hashline(prev_repl)
|
|
794
|
+
if not prev_repl_stripped.endswith("\n"):
|
|
795
|
+
prev_repl_stripped += "\n"
|
|
796
|
+
if prev_repl_stripped != lines_after_range_normalized[match_index - 1]:
|
|
797
|
+
continue # Only 1 line matches — likely coincidental
|
|
775
798
|
# Found a line that already exists after the range!
|
|
776
799
|
# This is a non-contiguous match - we need to "stitch" the replacement
|
|
777
800
|
# at this exact content match to prevent duplicate code structures
|
|
@@ -900,109 +923,6 @@ def _apply_range_shifting(hashed_lines, resolved_ops):
|
|
|
900
923
|
return resolved_ops
|
|
901
924
|
|
|
902
925
|
|
|
903
|
-
# Regex configuration
|
|
904
|
-
RE_CODE_NOISE = r'(#.*|//.*|/\*[\s\S]*?\*/|"(?:\\.|[^"\\])*"|\'(?:\\.|[^\'\\])*\')'
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
def get_brace_balance(lines_to_check: list[str]) -> int:
|
|
908
|
-
"""
|
|
909
|
-
Calculates the net curly brace debt of a list of lines.
|
|
910
|
-
Automatically strips hashlines, comments, and string literals.
|
|
911
|
-
"""
|
|
912
|
-
text = "".join(lines_to_check)
|
|
913
|
-
clean_code = strip_hashline(text)
|
|
914
|
-
clean_code = re.sub(RE_CODE_NOISE, "", clean_code)
|
|
915
|
-
return clean_code.count("{") - clean_code.count("}")
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
def _apply_closure_safeguard(hashed_lines, resolved_ops):
|
|
919
|
-
"""
|
|
920
|
-
Enhanced closure safeguard with dynamic bidirectional search.
|
|
921
|
-
"""
|
|
922
|
-
# Tune these to adjust how far the 'healing' logic searches
|
|
923
|
-
MAX_LOOK_DOWN = 5
|
|
924
|
-
# Note: We'll calculate the actual MAX_LOOK_UP per operation
|
|
925
|
-
# to ensure we don't scan past the start_idx.
|
|
926
|
-
|
|
927
|
-
for i, resolved in enumerate(resolved_ops):
|
|
928
|
-
op = resolved["op"]
|
|
929
|
-
if op["operation"] not in {"replace", "delete"}:
|
|
930
|
-
continue
|
|
931
|
-
|
|
932
|
-
replacement_text = op.get("text", "") or ""
|
|
933
|
-
replacement_lines = replacement_text.splitlines(keepends=True)
|
|
934
|
-
|
|
935
|
-
# --- PHASE 1: BIDIRECTIONAL STRUCTURAL HEALING ---
|
|
936
|
-
if get_brace_balance([replacement_text]) == 0:
|
|
937
|
-
start_idx = resolved["start_idx"]
|
|
938
|
-
orig_end_idx = resolved["end_idx"]
|
|
939
|
-
|
|
940
|
-
if get_brace_balance(hashed_lines[start_idx : orig_end_idx + 1]) != 0:
|
|
941
|
-
# Dynamic Search List Generation
|
|
942
|
-
# We limit look-up so we don't scan before the start_idx
|
|
943
|
-
actual_max_up = orig_end_idx - start_idx
|
|
944
|
-
actual_max_down = max(MAX_LOOK_DOWN, orig_end_idx - start_idx)
|
|
945
|
-
search_offsets = []
|
|
946
|
-
|
|
947
|
-
# Generate alternating offsets: [1, -1, 2, -2, ... N]
|
|
948
|
-
for dist in range(1, max(actual_max_down, actual_max_up) + 1):
|
|
949
|
-
if dist <= actual_max_down:
|
|
950
|
-
search_offsets.append(dist)
|
|
951
|
-
if dist <= actual_max_up:
|
|
952
|
-
search_offsets.append(-dist)
|
|
953
|
-
|
|
954
|
-
for offset in search_offsets:
|
|
955
|
-
candidate_end = orig_end_idx + offset
|
|
956
|
-
|
|
957
|
-
# Safety: check bounds and avoid overlapping other ops
|
|
958
|
-
if candidate_end < start_idx or candidate_end >= len(hashed_lines):
|
|
959
|
-
continue
|
|
960
|
-
|
|
961
|
-
if any(
|
|
962
|
-
j != i and (other["start_idx"] <= candidate_end <= other["end_idx"])
|
|
963
|
-
for j, other in enumerate(resolved_ops)
|
|
964
|
-
):
|
|
965
|
-
continue
|
|
966
|
-
|
|
967
|
-
if get_brace_balance(hashed_lines[start_idx : candidate_end + 1]) == 0:
|
|
968
|
-
resolved["end_idx"] = candidate_end
|
|
969
|
-
break
|
|
970
|
-
|
|
971
|
-
# --- PHASE 2: CONTRACTION (Indentation Guard) ---
|
|
972
|
-
# Prevents replacing an outer-scope brace if the replacement text already
|
|
973
|
-
# includes its own correctly indented closer.
|
|
974
|
-
if not replacement_lines:
|
|
975
|
-
continue
|
|
976
|
-
|
|
977
|
-
last_repl_line = strip_hashline(replacement_lines[-1])
|
|
978
|
-
last_repl_stripped = last_repl_line.strip().rstrip(";,")
|
|
979
|
-
|
|
980
|
-
if last_repl_stripped and last_repl_stripped[-1] in "})]":
|
|
981
|
-
# Calculate replacement indent
|
|
982
|
-
repl_indent = len(last_repl_line) - len(last_repl_line.lstrip(" \t"))
|
|
983
|
-
|
|
984
|
-
if resolved["end_idx"] < len(hashed_lines):
|
|
985
|
-
end_line = strip_hashline(hashed_lines[resolved["end_idx"]])
|
|
986
|
-
check_end = end_line.strip().rstrip(";,")
|
|
987
|
-
|
|
988
|
-
if check_end and check_end[-1] in "})]":
|
|
989
|
-
# Calculate indent of the existing brace in the file
|
|
990
|
-
file_indent = len(end_line) - len(end_line.lstrip(" \t"))
|
|
991
|
-
|
|
992
|
-
# If the file's brace is less indented, it belongs to an outer scope
|
|
993
|
-
if file_indent < repl_indent and resolved["end_idx"] > resolved["start_idx"]:
|
|
994
|
-
new_end_idx = resolved["end_idx"] - 1
|
|
995
|
-
|
|
996
|
-
# Safety: don't contract into another operation's territory
|
|
997
|
-
if not any(
|
|
998
|
-
j != i and (other["start_idx"] <= new_end_idx <= other["end_idx"])
|
|
999
|
-
for j, other in enumerate(resolved_ops)
|
|
1000
|
-
):
|
|
1001
|
-
resolved["end_idx"] = new_end_idx
|
|
1002
|
-
|
|
1003
|
-
return resolved_ops
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
926
|
def _merge_replace_operations(resolved_ops):
|
|
1007
927
|
"""
|
|
1008
928
|
Merge contiguous or overlapping replace operations.
|
|
@@ -1411,9 +1331,6 @@ def apply_hashline_operations(
|
|
|
1411
1331
|
resolved_ops = _merge_replace_operations(resolved_ops)
|
|
1412
1332
|
# Apply content-aware range expansion/shifting for replace operations
|
|
1413
1333
|
# resolved_ops = _apply_range_shifting(hashed_lines, resolved_ops)
|
|
1414
|
-
# Apply closure safeguard for braces/brackets
|
|
1415
|
-
resolved_ops = _apply_closure_safeguard(hashed_lines, resolved_ops)
|
|
1416
|
-
|
|
1417
1334
|
# Sort by start_idx descending to apply from bottom to top
|
|
1418
1335
|
# When operations have same start_idx, apply in order: insert, replace, delete
|
|
1419
1336
|
# This ensures correct behavior when multiple operations target the same line
|
|
@@ -52,7 +52,7 @@ class HashPos:
|
|
|
52
52
|
def generate_public_id(self, text: str, line_idx: int) -> str:
|
|
53
53
|
"""
|
|
54
54
|
Generates a 4-char Base64 ID combining modulo buckets and context hash.
|
|
55
|
-
Layout: [2-bit b1] [
|
|
55
|
+
Layout: [2-bit b1] [2-bit b2] [10-bit Hash A] [10-bit Hash B]
|
|
56
56
|
"""
|
|
57
57
|
b1, b2 = self._get_region_bits(line_idx)
|
|
58
58
|
neighborhood_hash = self._get_neighborhood_hash(line_idx)
|
|
@@ -62,8 +62,7 @@ class HashPos:
|
|
|
62
62
|
hash_b = neighborhood_hash & 0x3FF
|
|
63
63
|
|
|
64
64
|
# Construct the mixed 24-bit integer
|
|
65
|
-
packed = (b1 << 22) | (
|
|
66
|
-
|
|
65
|
+
packed = (b1 << 22) | (b2 << 20) | (hash_a << 10) | hash_b
|
|
67
66
|
res = ""
|
|
68
67
|
for _ in range(4):
|
|
69
68
|
res += self.B64[packed % 64]
|
|
@@ -79,10 +78,9 @@ class HashPos:
|
|
|
79
78
|
packed |= self.B64.index(char) << (6 * i)
|
|
80
79
|
|
|
81
80
|
b1 = (packed >> 22) & 3
|
|
82
|
-
|
|
83
|
-
|
|
81
|
+
b2 = (packed >> 20) & 3
|
|
82
|
+
hash_a = (packed >> 10) & 0x3FF
|
|
84
83
|
hash_b = packed & 0x3FF
|
|
85
|
-
|
|
86
84
|
mod_val = (b1 << 2) | b2
|
|
87
85
|
neighborhood_hash = (hash_a << 10) | hash_b
|
|
88
86
|
|
|
@@ -29,8 +29,8 @@ main_system: |
|
|
|
29
29
|
|
|
30
30
|
<context name="file_format">
|
|
31
31
|
### 1. FILE FORMAT
|
|
32
|
-
File contents will be prefixed with identifiers. Each line starts with a case-sensitive content
|
|
33
|
-
They are algorithmically generated, maintained, and subject to change. Do not search for these content
|
|
32
|
+
File contents will be prefixed with identifiers. Each line starts with a case-sensitive content ID followed by `::`. These are used to target where editing tools will perform edits.
|
|
33
|
+
They are algorithmically generated, maintained, and subject to change. Do not search for these content IDs. Focus on the lines they identify.
|
|
34
34
|
|
|
35
35
|
**Example File Format :**
|
|
36
36
|
il9n::#!/usr/bin/env python3
|
|
@@ -6,7 +6,7 @@ main_system: |
|
|
|
6
6
|
Act as an expert software developer. Plan carefully, explain your logic briefly, and execute via LOCATE/CONTENTS blocks.
|
|
7
7
|
|
|
8
8
|
### 1. FILE FORMAT
|
|
9
|
-
Files are provided in "hashline" format. Each line starts with a case-sensitive content
|
|
9
|
+
Files are provided in "hashline" format. Each line starts with a case-sensitive content ID followed by `::`.
|
|
10
10
|
These hashes are used as identifiers for lines when editing.
|
|
11
11
|
|
|
12
12
|
**Example File Format :**
|
|
@@ -35,13 +35,13 @@ class Tool(BaseTool):
|
|
|
35
35
|
"function": {
|
|
36
36
|
"name": "EditText",
|
|
37
37
|
"description": (
|
|
38
|
-
"Edit text in one or more files using content
|
|
38
|
+
"Edit text in one or more files using content ID markers. "
|
|
39
39
|
"Supports replace, delete, and insert operations in a single call. "
|
|
40
40
|
"Can handle an array of up to 10 edits across multiple files. "
|
|
41
41
|
"Each edit must include its own file_path and operation type. "
|
|
42
|
-
"Use content
|
|
42
|
+
"Use content ID ranges with the start_line and end_line parameters with format "
|
|
43
43
|
"`{4 char hash}` (without the braces). For empty files, use `@000` as the "
|
|
44
|
-
"content
|
|
44
|
+
"content ID references."
|
|
45
45
|
),
|
|
46
46
|
"parameters": {
|
|
47
47
|
"type": "object",
|
|
@@ -74,14 +74,14 @@ class Tool(BaseTool):
|
|
|
74
74
|
"start_line": {
|
|
75
75
|
"type": "string",
|
|
76
76
|
"description": (
|
|
77
|
-
"
|
|
77
|
+
"content ID for start line: `{4 char hash}` (without "
|
|
78
78
|
"the braces)"
|
|
79
79
|
),
|
|
80
80
|
},
|
|
81
81
|
"end_line": {
|
|
82
82
|
"type": "string",
|
|
83
83
|
"description": (
|
|
84
|
-
"
|
|
84
|
+
"content ID for end line: `{4 char hash}` (without the"
|
|
85
85
|
" braces)"
|
|
86
86
|
),
|
|
87
87
|
},
|
|
@@ -248,7 +248,7 @@ class Tool(BaseTool):
|
|
|
248
248
|
if new_content != original_content:
|
|
249
249
|
file_successful_edits += len(successful_ops)
|
|
250
250
|
else:
|
|
251
|
-
raise ToolError("Invalid Edit - Update content
|
|
251
|
+
raise ToolError("Invalid Edit - Update content ID bounds")
|
|
252
252
|
|
|
253
253
|
if len(failed_ops):
|
|
254
254
|
for failed_op in failed_ops:
|
|
@@ -446,7 +446,7 @@ class Tool(BaseTool):
|
|
|
446
446
|
text=strip_hashline(text),
|
|
447
447
|
)
|
|
448
448
|
except ContentHashError as e:
|
|
449
|
-
diff_output = f"
|
|
449
|
+
diff_output = f"content ID verification failed: {str(e)}"
|
|
450
450
|
except Exception:
|
|
451
451
|
pass
|
|
452
452
|
|
|
@@ -46,24 +46,14 @@ class Tool(BaseTool):
|
|
|
46
46
|
},
|
|
47
47
|
"use_regex": {
|
|
48
48
|
"type": "boolean",
|
|
49
|
-
"default":
|
|
49
|
+
"default": True,
|
|
50
50
|
"description": "Whether to use regex.",
|
|
51
51
|
},
|
|
52
52
|
"case_insensitive": {
|
|
53
53
|
"type": "boolean",
|
|
54
|
-
"default":
|
|
54
|
+
"default": True,
|
|
55
55
|
"description": "Whether to perform a case-insensitive search.",
|
|
56
56
|
},
|
|
57
|
-
"context_before": {
|
|
58
|
-
"type": "integer",
|
|
59
|
-
"default": 5,
|
|
60
|
-
"description": "Number of lines to show before a match.",
|
|
61
|
-
},
|
|
62
|
-
"context_after": {
|
|
63
|
-
"type": "integer",
|
|
64
|
-
"default": 5,
|
|
65
|
-
"description": "Number of lines to show after a match.",
|
|
66
|
-
},
|
|
67
57
|
},
|
|
68
58
|
"required": ["pattern"],
|
|
69
59
|
},
|
|
@@ -117,8 +107,8 @@ class Tool(BaseTool):
|
|
|
117
107
|
pattern = strip_hashline(search_op.get("pattern"))
|
|
118
108
|
file_pattern = search_op.get("file_pattern", "*")
|
|
119
109
|
directory = search_op.get("directory", search_op.get("path", "."))
|
|
120
|
-
use_regex = search_op.get("use_regex",
|
|
121
|
-
case_insensitive = search_op.get("case_insensitive",
|
|
110
|
+
use_regex = search_op.get("use_regex", True)
|
|
111
|
+
case_insensitive = search_op.get("case_insensitive", True)
|
|
122
112
|
context_before = search_op.get("context_before", 5)
|
|
123
113
|
context_after = search_op.get("context_after", 5)
|
|
124
114
|
|