cecli-dev 1.0.0rc1__tar.gz → 1.0.0rc2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/PKG-INFO +1 -1
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/_version.py +3 -3
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/__init__.py +3 -1
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/core.py +3 -43
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/hot_reload.py +1 -1
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/leak_detect.py +13 -0
- cecli_dev-1.0.0rc2/cecli/helpers/similarity.py +77 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/io.py +24 -16
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/main.py +13 -13
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/models.py +8 -5
- cecli_dev-1.0.0rc2/cecli/signals.py +49 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/utils.py +2 -1
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/waiting.py +2 -2
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli_dev.egg-info/PKG-INFO +1 -1
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli_dev.egg-info/SOURCES.txt +1 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli_dev.egg-info/scm_file_list.json +1 -0
- cecli_dev-1.0.0rc2/cecli_dev.egg-info/scm_version.json +8 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_coder.py +1 -1
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_main.py +1 -1
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_model_provider_manager.py +0 -8
- cecli_dev-1.0.0rc1/cecli/helpers/similarity.py +0 -98
- cecli_dev-1.0.0rc1/cecli_dev.egg-info/scm_version.json +0 -8
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/.dockerignore +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/.flake8 +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/.gitattributes +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/.github/ISSUE_TEMPLATE/issue.yml +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/.github/workflows/check_pypi_version.yml +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/.github/workflows/docker-build-test.yml +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/.github/workflows/docker-release.yml +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/.github/workflows/issues.yml +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/.github/workflows/pages.yml +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/.github/workflows/pre-commit.yml +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/.github/workflows/release.yml +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/.github/workflows/ubuntu-tests.yml +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/.github/workflows/windows-tests.yml +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/.github/workflows/windows_check_pypi_version.yml +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/.gitignore +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/.pre-commit-config.yaml +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/CHANGELOG.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/CNAME +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/CONTRIBUTING.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/HISTORY.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/LICENSE.txt +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/MANIFEST.in +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/README.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/benchmark/Dockerfile +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/benchmark/README.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/benchmark/__init__.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/benchmark/benchmark.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/benchmark/benchmark_classic.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/benchmark/clone-exercism.sh +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/benchmark/cpp-test.sh +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/benchmark/docker.sh +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/benchmark/docker_build.sh +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/benchmark/install-docker-ubuntu.sh +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/benchmark/npm-test.sh +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/benchmark/over_time.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/benchmark/plot.sh +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/benchmark/plots.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/benchmark/problem_stats.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/benchmark/prompts.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/benchmark/refactor_tools.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/benchmark/rsync.sh +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/benchmark/rungrid.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/benchmark/swe-bench-lite.txt +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/benchmark/swe-bench.txt +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/benchmark/swe_bench.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/benchmark/test_benchmark.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/benchmark/variations.1.sh +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/benchmark/variations.2.sh +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/benchmark/variations.3.sh +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/benchmark/variations.4.sh +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/__init__.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/__main__.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/args.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/args_formatter.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/change_tracker.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/coders/__init__.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/coders/agent_coder.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/coders/architect_coder.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/coders/ask_coder.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/coders/base_coder.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/coders/chat_chunks.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/coders/context_coder.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/coders/copypaste_coder.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/coders/editblock_coder.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/coders/editblock_fenced_coder.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/coders/editblock_func_coder.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/coders/editor_diff_fenced_coder.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/coders/editor_editblock_coder.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/coders/editor_whole_coder.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/coders/hashline_coder.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/coders/help_coder.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/coders/patch_coder.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/coders/search_replace.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/coders/shell.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/coders/single_wholefile_func_coder.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/coders/sub_agent_coder.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/coders/udiff_coder.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/coders/udiff_simple.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/coders/wholefile_coder.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/coders/wholefile_func_coder.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/add.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/agent.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/agent_model.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/architect.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/ask.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/chat_mode.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/clear.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/code.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/command_prefix.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/commit.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/compact.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/context.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/context_blocks.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/context_management.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/copy.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/copy_context.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/diff.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/drop.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/editor.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/editor_model.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/exclude_skill.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/exit.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/git.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/hashline.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/help.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/history_search.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/hooks.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/include_skill.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/lint.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/list_mcp.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/list_sessions.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/list_skills.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/load.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/load_hook.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/load_mcp.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/load_session.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/load_skill.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/ls.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/map.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/map_refresh.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/merge.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/model.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/models.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/multiline_mode.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/paste.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/quit.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/read_only.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/read_only_stub.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/reap_agent.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/reasoning_effort.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/remove_hook.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/remove_mcp.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/remove_skill.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/report.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/reset.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/rules.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/run.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/save.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/save_session.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/settings.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/spawn_agent.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/switch_agent.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/terminal_data/linux.keytab +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/terminal_setup.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/test.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/think_tokens.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/tokens.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/undo.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/utils/__init__.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/utils/base_command.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/utils/helpers.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/utils/registry.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/utils/save_load_manager.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/voice.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/weak_model.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/web.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/workspace.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/deprecated_args.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/diffs.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/dump.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/editor.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/exceptions.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/format_settings.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/help.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/help_pats.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/__init__.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/agents/__init__.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/agents/config.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/agents/service.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/background_commands.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/command_parser.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/conversation/__init__.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/conversation/base_message.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/conversation/files.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/conversation/integration.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/conversation/manager.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/conversation/service.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/conversation/tags.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/conversation/utils.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/copypaste.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/coroutines.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/crypto.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/file_searcher.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/file_system/__init__.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/file_system/builders.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/file_system/ignore.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/file_system/ngram_index.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/file_system/service.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/file_system/trie_index.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/grep_ast/__init__.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/grep_ast/dump.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/grep_ast/grep_ast.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/grep_ast/main.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/grep_ast/parsers.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/grep_ast/tsl.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/hashline.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/hashpos/__init__.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/hashpos/hashpos.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/hashpos/hashpos.v1.bak +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/io_proxy.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/model_providers.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/monorepo/__init__.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/monorepo/config.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/monorepo/local_workspace.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/monorepo/project.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/monorepo/workspace.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/monorepo/worktree.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/nested.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/observations/__init__.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/observations/service.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/orchestration/__init__.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/orchestration/environment.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/orchestration/security.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/orchestration/service.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/plugin_manager.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/profiler.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/requests.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/responses.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/skills.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/threading.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/history.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/hooks/__init__.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/hooks/base.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/hooks/helpers.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/hooks/integration.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/hooks/manager.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/hooks/registry.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/hooks/service.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/hooks/types.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/interruptible_input.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/linter.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/llm.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/mcp/__init__.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/mcp/manager.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/mcp/oauth.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/mcp/server.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/mcp/utils.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/mdstream.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/onboarding.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/prompts/__init__.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/prompts/agent.yml +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/prompts/architect.yml +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/prompts/ask.yml +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/prompts/base.yml +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/prompts/context.yml +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/prompts/copypaste.yml +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/prompts/editblock.yml +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/prompts/editblock_fenced.yml +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/prompts/editblock_func.yml +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/prompts/editor_diff_fenced.yml +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/prompts/editor_editblock.yml +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/prompts/editor_whole.yml +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/prompts/hashline.yml +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/prompts/help.yml +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/prompts/patch.yml +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/prompts/single_wholefile_func.yml +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/prompts/subagent.yml +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/prompts/udiff.yml +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/prompts/udiff_simple.yml +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/prompts/utils/__init__.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/prompts/utils/registry.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/prompts/utils/system.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/prompts/wholefile.yml +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/prompts/wholefile_func.yml +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-language-pack/README.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-language-pack/arduino-tags.scm +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-language-pack/bash-tags.scm +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-language-pack/c-tags.scm +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-language-pack/chatito-tags.scm +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-language-pack/clojure-tags.scm +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-language-pack/commonlisp-tags.scm +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-language-pack/cpp-tags.scm +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-language-pack/csharp-tags.scm +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-language-pack/d-tags.scm +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-language-pack/dart-tags.scm +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-language-pack/elisp-tags.scm +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-language-pack/elixir-tags.scm +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-language-pack/elm-tags.scm +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-language-pack/gleam-tags.scm +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-language-pack/go-tags.scm +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-language-pack/java-tags.scm +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-language-pack/javascript-tags.scm +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-language-pack/lua-tags.scm +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-language-pack/matlab-tags.scm +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-language-pack/ocaml-tags.scm +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-language-pack/ocaml_interface-tags.scm +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-language-pack/pony-tags.scm +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-language-pack/properties-tags.scm +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-language-pack/python-tags.scm +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-language-pack/r-tags.scm +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-language-pack/racket-tags.scm +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-language-pack/ruby-tags.scm +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-language-pack/rust-tags.scm +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-language-pack/solidity-tags.scm +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-language-pack/swift-tags.scm +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-language-pack/udev-tags.scm +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-languages/README.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-languages/bash-tags.scm +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-languages/c-tags.scm +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-languages/c_sharp-tags.scm +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-languages/cpp-tags.scm +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-languages/dart-tags.scm +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-languages/elisp-tags.scm +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-languages/elixir-tags.scm +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-languages/elm-tags.scm +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-languages/fortran-tags.scm +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-languages/go-tags.scm +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-languages/haskell-tags.scm +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-languages/hcl-tags.scm +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-languages/java-tags.scm +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-languages/javascript-tags.scm +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-languages/julia-tags.scm +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-languages/kotlin-tags.scm +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-languages/matlab-tags.scm +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-languages/ocaml-tags.scm +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-languages/ocaml_interface-tags.scm +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-languages/php-tags.scm +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-languages/python-tags.scm +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-languages/ql-tags.scm +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-languages/ruby-tags.scm +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-languages/rust-tags.scm +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-languages/scala-tags.scm +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-languages/typescript-tags.scm +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-languages/zig-tags.scm +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/reasoning_tags.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/repo.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/repomap.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/report.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/resources/__init__.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/resources/model-metadata.json +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/resources/model-settings.yml +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/resources/providers.json +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/run_cmd.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/scrape.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/sendchat.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/sessions.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/special.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tools/__init__.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tools/_yield.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tools/command.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tools/command_interactive.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tools/delegate.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tools/edit_file.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tools/explore_code.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tools/git_branch.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tools/git_diff.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tools/git_log.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tools/git_remote.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tools/git_show.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tools/git_status.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tools/grep.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tools/ls.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tools/orchestrate.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tools/read_file.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tools/resource_manager.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tools/thinking.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tools/undo_change.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tools/update_todo_list.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tools/utils/__init__.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tools/utils/base_tool.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tools/utils/helpers.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tools/utils/output.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tools/utils/registry.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tools/utils/responses.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tools/validations/__init__.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tools/validations/validations.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tui/__init__.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tui/app.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tui/io.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tui/styles.tcss +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tui/widgets/__init__.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tui/widgets/completion_bar.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tui/widgets/file_list.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tui/widgets/footer.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tui/widgets/input_area.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tui/widgets/input_container.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tui/widgets/key_hints.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tui/widgets/output.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tui/widgets/status_bar.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tui/widgets/subagent_pills.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tui/worker.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/urls.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/versioncheck.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/voice.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/watch.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/watch_prompts.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/Gemfile +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/_includes/blame.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/_includes/get-started.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/_includes/help-tip.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/_includes/help.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/_includes/install.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/_includes/keys.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/_includes/model-warnings.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/_includes/multi-line.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/_includes/python-m-aider.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/_includes/recording.css +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/_includes/recording.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/_includes/works-best.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/_sass/_features.scss +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/_sass/_footer.scss +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/_sass/_hero.scss +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/_sass/_info.scss +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/_sass/_layout.scss +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/_sass/_reset.scss +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/_sass/_testimonials.scss +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/_sass/_typography.scss +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/_sass/_variables.scss +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/_sass/custom/custom.scss +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/_sass/global-overrides.scss +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/config/adv-model-settings.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/config/agent-mode.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/config/api-keys.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/config/conf.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/config/custom-commands.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/config/custom-system-prompts.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/config/dotenv.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/config/editor.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/config/hooks.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/config/mcp.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/config/model-aliases.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/config/model-configuration.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/config/model-providers.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/config/options.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/config/reasoning.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/config/retries.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/config/security.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/config/skills.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/config/subagents.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/config/tui.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/config/workspaces.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/config.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/git.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/index.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/install/docker.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/install.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/languages.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/legal/contributor-agreement.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/legal/privacy.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/llms/anthropic.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/llms/azure.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/llms/bedrock.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/llms/cohere.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/llms/deepseek.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/llms/gemini.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/llms/github.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/llms/groq.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/llms/lm-studio.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/llms/ollama.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/llms/openai-compat.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/llms/openai.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/llms/openrouter.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/llms/other.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/llms/vertex.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/llms/warnings.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/llms/xai.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/llms.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/more/analytics.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/more/edit-formats.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/more/infinite-output.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/more-info.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/repomap.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/scripting.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/troubleshooting/cecli-not-found.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/troubleshooting/edit-errors.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/troubleshooting/imports.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/troubleshooting/models-and-keys.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/troubleshooting/support.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/troubleshooting/token-limits.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/troubleshooting/warnings.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/troubleshooting.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/usage/commands.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/usage/conventions.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/usage/copypaste.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/usage/images-urls.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/usage/lint-test.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/usage/modes.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/usage/not-code.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/usage/notifications.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/usage/optional.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/usage/sessions.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/usage/tips.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/usage/voice.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/usage/watch.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/usage.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/share/index.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli_dev.egg-info/dependency_links.txt +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli_dev.egg-info/entry_points.txt +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli_dev.egg-info/requires.txt +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli_dev.egg-info/top_level.txt +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/docker/Dockerfile +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/docker/Dockerfile.local.nvidia.cuda.ubuntu +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/pyproject.toml +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/pytest.ini +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/requirements/common-constraints.txt +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/requirements/requirements-dev.in +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/requirements/requirements-dev.txt +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/requirements/requirements-help.in +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/requirements/requirements-help.txt +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/requirements/requirements-playwright.in +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/requirements/requirements-playwright.txt +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/requirements/requirements.in +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/requirements/tree-sitter.in +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/requirements.txt +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/scripts/30k-image.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/scripts/Dockerfile.jekyll +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/scripts/__init__.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/scripts/blame.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/scripts/clean_metadata.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/scripts/compare-message-history.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/scripts/cost_analyzer.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/scripts/cost_calculator.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/scripts/dl_icons.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/scripts/filter-chat-mode.js +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/scripts/generate_providers.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/scripts/get_contributor_list.js +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/scripts/get_hashline.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/scripts/history_prompts.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/scripts/homepage.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/scripts/issues.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/scripts/jekyll_build.sh +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/scripts/jekyll_run.sh +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/scripts/logo_svg.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/scripts/optimize_tokens.sh +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/scripts/pip-compile.sh +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/scripts/recording_audio.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/scripts/redact-cast.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/scripts/rename_to_cecli.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/scripts/tmux_record.sh +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/scripts/tsl_pack_langs.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/scripts/update-blame.sh +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/scripts/update-docs.sh +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/scripts/update-history.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/scripts/versionbump.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/scripts/yank-old-versions.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/setup.cfg +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/shim.pyproject.toml +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/__init__.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/__init__.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/conftest.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_aws_credentials.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_background_commands.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_commands.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_custom_commands.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_deprecated.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_editblock.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_editor.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_exceptions.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_find_or_blocks.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_hashline.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_hashline_closure.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_history.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_io.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_linter.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_model_info_manager.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_models.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_onboarding.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_plugin_manager.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_prompts.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_reasoning.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_repo.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_repomap.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_run_cmd.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_sanity_check_repo.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_scripting.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_sendchat.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_session_args.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_session_crypto.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_sessions.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_sessions_manager.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_skills.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_special.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_ssl_verification.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_udiff.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_urls.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_voice.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_watch.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_wholefile.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/coders/test_coder_switching.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/coders/test_copypaste_coder.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/commands/test_compaction.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/commands/test_switch_agent.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/conftest.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/conversations/test_conversation_integration.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/conversations/test_conversation_system.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/chat-history-search-replace-gold.txt +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/chat-history.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/arduino/test.ino +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/bash/test.sh +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/c/test.c +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/chatito/test.chatito +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/clojure/test.clj +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/commonlisp/test.lisp +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/cpp/test.cpp +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/csharp/test.cs +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/d/test.d +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/dart/test.dart +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/elisp/test.el +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/elixir/test.ex +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/elm/test.elm +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/gleam/test.gleam +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/go/test.go +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/haskell/test.hs +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/hcl/test.tf +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/java/test.java +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/javascript/test.js +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/kotlin/test.kt +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/lua/test.lua +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/matlab/test.m +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/ocaml/test.ml +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/ocaml_interface/test.mli +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/php/test.php +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/pony/test.pony +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/properties/test.properties +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/python/test.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/ql/test.ql +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/r/test.r +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/racket/test.rkt +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/ruby/test.rb +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/rust/test.rs +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/scala/test.scala +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/solidity/test.sol +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/swift/test.swift +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/tsx/test.tsx +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/typescript/test.ts +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/udev/test.rules +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/zig/test.zig +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/sample-code-base/sample.js +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/sample-code-base/sample.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/sample-code-base-repo-map.txt +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/watch.js +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/watch.lisp +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/watch.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/watch_question.js +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/help/test_help.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/helpers/monorepo/LOCAL_WORKSPACE.md +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/helpers/monorepo/test_config.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/helpers/monorepo/test_config_active.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/helpers/monorepo/test_ignore_logic.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/helpers/monorepo/test_local_workspace.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/helpers/monorepo/test_repomap_workspace.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/helpers/monorepo/test_workspace.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/helpers/observations/test_observation_service.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/helpers/test_orchestration.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/hooks/__init__.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/hooks/test_base.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/hooks/test_manager.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/hooks/test_registry.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/integration/test_agent_mcp_management.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/integration/test_mcp_management.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/mcp/__init__.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/mcp/conftest.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/mcp/mock_server.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/mcp/test_keepalive_concurrency.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/mcp/test_keepalive_config.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/mcp/test_keepalive_integration.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/mcp/test_keepalive_logging.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/mcp/test_keepalive_resilience.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/mcp/test_keepalive_unit.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/mcp/test_manager.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/scrape/test_playwright_disable.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/scrape/test_scrape.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/subagents/__init__.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/subagents/conftest.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/subagents/test_commands.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/subagents/test_config.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/subagents/test_delegate.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/subagents/test_finished.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/subagents/test_io_proxy.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/subagents/test_service.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/subagents/test_sub_agent_coder.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/test_requests.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/tools/test_extractions.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/tools/test_get_lines.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/tools/test_git_branch.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/tools/test_git_diff.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/tools/test_grep.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/tools/test_insert_block.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/tools/test_read_range_execute.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/tools/test_registry.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/tools/test_remove_mcp_tool.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/tools/test_tool_arguments.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/tools/test_tools_load_mcp_tool.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/tools/validations.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/tui/test_app.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/unit/test_load_mcp.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/unit/test_remove_mcp.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/unit/test_unit_load_mcp_tool.py +0 -0
- {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/unit/test_unit_remove_mcp_tool.py +0 -0
|
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
|
|
|
18
18
|
commit_id: str | None
|
|
19
19
|
__commit_id__: str | None
|
|
20
20
|
|
|
21
|
-
__version__ = version = '1.0.
|
|
22
|
-
__version_tuple__ = version_tuple = (1, 0, 0, '
|
|
21
|
+
__version__ = version = '1.0.0rc2'
|
|
22
|
+
__version_tuple__ = version_tuple = (1, 0, 0, 'rc2')
|
|
23
23
|
|
|
24
|
-
__commit_id__ = commit_id = '
|
|
24
|
+
__commit_id__ = commit_id = 'g394025597'
|
|
@@ -5,6 +5,8 @@ This package contains individual command implementations that follow the
|
|
|
5
5
|
BaseCommand pattern for modular, testable command execution.
|
|
6
6
|
"""
|
|
7
7
|
|
|
8
|
+
from cecli.signals import ReloadProgramSignal, SwitchCoderSignal
|
|
9
|
+
|
|
8
10
|
from .add import AddCommand
|
|
9
11
|
from .agent import AgentCommand
|
|
10
12
|
from .agent_model import AgentModelCommand
|
|
@@ -20,7 +22,7 @@ from .context_blocks import ContextBlocksCommand
|
|
|
20
22
|
from .context_management import ContextManagementCommand
|
|
21
23
|
from .copy import CopyCommand
|
|
22
24
|
from .copy_context import CopyContextCommand
|
|
23
|
-
from .core import Commands
|
|
25
|
+
from .core import Commands
|
|
24
26
|
from .diff import DiffCommand
|
|
25
27
|
from .drop import DropCommand
|
|
26
28
|
from .editor import EditCommand, EditorCommand
|
|
@@ -8,49 +8,7 @@ from cecli.commands.utils.registry import CommandRegistry
|
|
|
8
8
|
from cecli.helpers import nested, plugin_manager
|
|
9
9
|
from cecli.helpers.file_searcher import handle_core_files
|
|
10
10
|
from cecli.helpers.threading import ThreadSafeEvent
|
|
11
|
-
from cecli.
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
class SwitchCoderSignal(BaseException):
|
|
15
|
-
"""
|
|
16
|
-
Signal to switch the current Coder instance to a new configuration.
|
|
17
|
-
|
|
18
|
-
This is NOT an error - it's a control flow signal used to propagate
|
|
19
|
-
coder switching requests up through the async call stack. It carries
|
|
20
|
-
the kwargs needed to create a new Coder instance.
|
|
21
|
-
|
|
22
|
-
Note: Inherits from BaseException (like KeyboardInterrupt and SystemExit)
|
|
23
|
-
to avoid being caught by generic `except Exception` handlers, making the
|
|
24
|
-
non-error nature of this signal explicit.
|
|
25
|
-
|
|
26
|
-
Attributes:
|
|
27
|
-
kwargs: Configuration dict passed to Coder.create() for the new instance
|
|
28
|
-
placeholder: Optional placeholder text for the input prompt
|
|
29
|
-
"""
|
|
30
|
-
|
|
31
|
-
def __init__(self, placeholder=None, **kwargs):
|
|
32
|
-
self.kwargs = kwargs
|
|
33
|
-
self.placeholder = placeholder
|
|
34
|
-
super().__init__()
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
class ReloadProgramSignal(BaseException):
|
|
38
|
-
"""
|
|
39
|
-
Signal to reload the entire program configuration.
|
|
40
|
-
|
|
41
|
-
This is NOT an error - it's a control flow signal used to trigger
|
|
42
|
-
a full program reload, re-parsing config files and re-initializing
|
|
43
|
-
all components. Useful for hot-reloading when configuration files
|
|
44
|
-
change.
|
|
45
|
-
|
|
46
|
-
Note: Inherits from BaseException (like KeyboardInterrupt and SystemExit)
|
|
47
|
-
to avoid being caught by generic `except Exception` handlers.
|
|
48
|
-
"""
|
|
49
|
-
|
|
50
|
-
def __init__(self, message="Reloading program configuration...", **kwargs):
|
|
51
|
-
self.kwargs = kwargs
|
|
52
|
-
self.message = message
|
|
53
|
-
super().__init__(self.message)
|
|
11
|
+
from cecli.signals import SwitchCoderSignal
|
|
54
12
|
|
|
55
13
|
|
|
56
14
|
class Commands:
|
|
@@ -215,6 +173,8 @@ class Commands:
|
|
|
215
173
|
return sorted(commands)
|
|
216
174
|
|
|
217
175
|
async def execute(self, cmd_name, args, coder=None, **kwargs):
|
|
176
|
+
from cecli.repo import ANY_GIT_ERROR
|
|
177
|
+
|
|
218
178
|
active_coder = coder or self.coder
|
|
219
179
|
command_class = CommandRegistry.get_command(cmd_name)
|
|
220
180
|
|
|
@@ -25,6 +25,19 @@ from contextlib import contextmanager
|
|
|
25
25
|
from dataclasses import dataclass, field
|
|
26
26
|
from typing import Any, Dict, List, Optional
|
|
27
27
|
|
|
28
|
+
import psutil
|
|
29
|
+
|
|
30
|
+
# Track the initial baseline memory at module load time
|
|
31
|
+
_BASELINE_MEM = psutil.Process(os.getpid()).memory_info().rss / (1024 * 1024)
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
def check_memory(label="Current"):
|
|
35
|
+
"""Prints absolute memory usage and growth since the script started."""
|
|
36
|
+
current_mem = psutil.Process(os.getpid()).memory_info().rss / (1024 * 1024)
|
|
37
|
+
growth = current_mem - _BASELINE_MEM
|
|
38
|
+
print(f"[{label}] Total: {current_mem:.2f} MB | Growth: +{growth:.2f} MB")
|
|
39
|
+
|
|
40
|
+
|
|
28
41
|
# ── Optional dependency wrappers ──
|
|
29
42
|
|
|
30
43
|
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
def normalize_vector(vector):
|
|
2
|
+
"""Normalize a vector to unit length (L2 norm).
|
|
3
|
+
|
|
4
|
+
Args:
|
|
5
|
+
vector (list): Input vector
|
|
6
|
+
|
|
7
|
+
Returns:
|
|
8
|
+
list: Normalized vector with length 1
|
|
9
|
+
"""
|
|
10
|
+
import math
|
|
11
|
+
|
|
12
|
+
magnitude = math.sqrt(sum(x * x for x in vector))
|
|
13
|
+
if magnitude == 0:
|
|
14
|
+
return list(vector) # Return copy if zero vector
|
|
15
|
+
return [x / magnitude for x in vector]
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def cosine_similarity(vector1, vector2):
|
|
19
|
+
"""Calculate cosine similarity between two vectors.
|
|
20
|
+
|
|
21
|
+
Args:
|
|
22
|
+
vector1 (list): First vector
|
|
23
|
+
vector2 (list): Second vector
|
|
24
|
+
|
|
25
|
+
Returns:
|
|
26
|
+
float: Cosine similarity between the vectors (range: -1 to 1)
|
|
27
|
+
"""
|
|
28
|
+
import math
|
|
29
|
+
|
|
30
|
+
if len(vector1) != len(vector2):
|
|
31
|
+
raise ValueError("Vectors must have the same length")
|
|
32
|
+
|
|
33
|
+
dot_product = sum(a * b for a, b in zip(vector1, vector2))
|
|
34
|
+
magnitude1 = math.sqrt(sum(x * x for x in vector1))
|
|
35
|
+
magnitude2 = math.sqrt(sum(x * x for x in vector2))
|
|
36
|
+
|
|
37
|
+
if magnitude1 == 0 or magnitude2 == 0:
|
|
38
|
+
return 0.0 # Return 0 if either vector is zero
|
|
39
|
+
|
|
40
|
+
return dot_product / (magnitude1 * magnitude2)
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
def create_bigram_vector(texts):
|
|
44
|
+
"""Create a bigram frequency vector.
|
|
45
|
+
|
|
46
|
+
Args:
|
|
47
|
+
texts (tuple): Tuple of strings to process
|
|
48
|
+
|
|
49
|
+
Returns:
|
|
50
|
+
list: Vector of bigram frequencies
|
|
51
|
+
"""
|
|
52
|
+
# Pre-compute bigram indices (0 for 'aa', 1 for 'ab', ..., 675 for 'zz')
|
|
53
|
+
bigram_indices = {}
|
|
54
|
+
idx = 0
|
|
55
|
+
for i in range(ord("a"), ord("z") + 1):
|
|
56
|
+
for j in range(ord("a"), ord("z") + 1):
|
|
57
|
+
bigram = chr(i) + chr(j)
|
|
58
|
+
bigram_indices[bigram] = idx
|
|
59
|
+
idx += 1
|
|
60
|
+
|
|
61
|
+
# Initialize frequency vector
|
|
62
|
+
vector = [0] * (26 * 26)
|
|
63
|
+
|
|
64
|
+
# Process all texts
|
|
65
|
+
for text in texts:
|
|
66
|
+
text_lower = text.lower()
|
|
67
|
+
if len(text_lower) < 2:
|
|
68
|
+
continue
|
|
69
|
+
|
|
70
|
+
# Create bigrams by combining consecutive characters
|
|
71
|
+
for i in range(len(text_lower) - 1):
|
|
72
|
+
bg = text_lower[i : i + 2]
|
|
73
|
+
# Filter only alphabetic bigrams
|
|
74
|
+
if bg.isalpha() and bg in bigram_indices:
|
|
75
|
+
vector[bigram_indices[bg]] += 1
|
|
76
|
+
|
|
77
|
+
return vector
|
|
@@ -11,7 +11,6 @@ import signal
|
|
|
11
11
|
import subprocess
|
|
12
12
|
import sys
|
|
13
13
|
import time
|
|
14
|
-
import webbrowser
|
|
15
14
|
from collections import defaultdict
|
|
16
15
|
from dataclasses import dataclass
|
|
17
16
|
from datetime import datetime
|
|
@@ -19,19 +18,8 @@ from io import StringIO
|
|
|
19
18
|
from pathlib import Path
|
|
20
19
|
|
|
21
20
|
from prompt_toolkit.completion import Completer, Completion, ThreadedCompleter
|
|
22
|
-
from prompt_toolkit.cursor_shapes import ModalCursorShapeConfig
|
|
23
|
-
from prompt_toolkit.enums import EditingMode
|
|
24
|
-
from prompt_toolkit.filters import Condition, is_searching
|
|
25
21
|
from prompt_toolkit.history import FileHistory
|
|
26
|
-
from prompt_toolkit.key_binding import KeyBindings
|
|
27
|
-
from prompt_toolkit.key_binding.vi_state import InputMode
|
|
28
|
-
from prompt_toolkit.keys import Keys
|
|
29
|
-
from prompt_toolkit.lexers import PygmentsLexer
|
|
30
22
|
from prompt_toolkit.output.vt100 import is_dumb_terminal
|
|
31
|
-
from prompt_toolkit.shortcuts import CompleteStyle, PromptSession
|
|
32
|
-
from prompt_toolkit.styles import Style
|
|
33
|
-
from pygments.lexers import MarkdownLexer, guess_lexer_for_filename
|
|
34
|
-
from pygments.token import Token
|
|
35
23
|
from rich.color import ColorParseError
|
|
36
24
|
from rich.columns import Columns
|
|
37
25
|
from rich.console import Console
|
|
@@ -182,6 +170,9 @@ class AutoCompleter(Completer):
|
|
|
182
170
|
self.tokenized = False
|
|
183
171
|
|
|
184
172
|
def tokenize(self):
|
|
173
|
+
from pygments.lexers import guess_lexer_for_filename
|
|
174
|
+
from pygments.token import Token
|
|
175
|
+
|
|
185
176
|
if self.tokenized:
|
|
186
177
|
return
|
|
187
178
|
self.tokenized = True
|
|
@@ -360,7 +351,7 @@ class InputOutput:
|
|
|
360
351
|
encoding="utf-8",
|
|
361
352
|
line_endings="platform",
|
|
362
353
|
dry_run=False,
|
|
363
|
-
editingmode=
|
|
354
|
+
editingmode="EMACS",
|
|
364
355
|
fancy_input=True,
|
|
365
356
|
file_watcher=None,
|
|
366
357
|
multiline_mode=False,
|
|
@@ -512,6 +503,9 @@ class InputOutput:
|
|
|
512
503
|
self.interruptible_input = None
|
|
513
504
|
|
|
514
505
|
if fancy_input:
|
|
506
|
+
from prompt_toolkit.lexers import PygmentsLexer
|
|
507
|
+
from pygments.lexers import MarkdownLexer
|
|
508
|
+
|
|
515
509
|
# If unicode is supported, use the rich 'dots2' spinner, otherwise an ascii fallback
|
|
516
510
|
if self._spinner_supports_unicode():
|
|
517
511
|
self.spinner_frames = SPINNERS["dots2"]["frames"]
|
|
@@ -527,11 +521,15 @@ class InputOutput:
|
|
|
527
521
|
"editing_mode": self.editingmode,
|
|
528
522
|
"bottom_toolbar": self.get_bottom_toolbar,
|
|
529
523
|
}
|
|
530
|
-
if self.editingmode ==
|
|
524
|
+
if self.editingmode == "VI":
|
|
525
|
+
from prompt_toolkit.cursor_shapes import ModalCursorShapeConfig
|
|
526
|
+
|
|
531
527
|
session_kwargs["cursor"] = ModalCursorShapeConfig()
|
|
532
528
|
if self.input_history_file is not None:
|
|
533
529
|
session_kwargs["history"] = FileHistory(self.input_history_file)
|
|
534
530
|
try:
|
|
531
|
+
from prompt_toolkit.shortcuts import PromptSession
|
|
532
|
+
|
|
535
533
|
self.prompt_session = PromptSession(**session_kwargs)
|
|
536
534
|
self.console = Console() # pretty console
|
|
537
535
|
except Exception as err:
|
|
@@ -639,6 +637,8 @@ class InputOutput:
|
|
|
639
637
|
setattr(self, attr_name, None) # Reset invalid color to None
|
|
640
638
|
|
|
641
639
|
def _get_style(self):
|
|
640
|
+
from prompt_toolkit.styles import Style
|
|
641
|
+
|
|
642
642
|
style_dict = {}
|
|
643
643
|
if not self.pretty:
|
|
644
644
|
return Style.from_dict(style_dict)
|
|
@@ -829,6 +829,11 @@ class InputOutput:
|
|
|
829
829
|
edit_format=None,
|
|
830
830
|
**kwargs,
|
|
831
831
|
):
|
|
832
|
+
from prompt_toolkit.filters import Condition, is_searching
|
|
833
|
+
from prompt_toolkit.key_binding import KeyBindings
|
|
834
|
+
from prompt_toolkit.keys import Keys
|
|
835
|
+
from prompt_toolkit.shortcuts import CompleteStyle
|
|
836
|
+
|
|
832
837
|
self.rule()
|
|
833
838
|
if commands.last_command_show_notification:
|
|
834
839
|
self.notify_user_input_required()
|
|
@@ -940,9 +945,10 @@ class InputOutput:
|
|
|
940
945
|
@kb.add("enter", eager=True, filter=~is_searching)
|
|
941
946
|
def _(event):
|
|
942
947
|
"Handle Enter key press"
|
|
948
|
+
from prompt_toolkit.key_binding.vi_state import InputMode
|
|
949
|
+
|
|
943
950
|
if self.multiline_mode and not (
|
|
944
|
-
self.editingmode ==
|
|
945
|
-
and event.app.vi_state.input_mode == InputMode.NAVIGATION
|
|
951
|
+
self.editingmode == "VI" and event.app.vi_state.input_mode == InputMode.NAVIGATION
|
|
946
952
|
):
|
|
947
953
|
# In multiline mode and if not in vi-mode or vi navigation/normal mode,
|
|
948
954
|
# Enter adds a newline
|
|
@@ -1222,6 +1228,8 @@ class InputOutput:
|
|
|
1222
1228
|
self, url, prompt="Open URL for more info?", allow_never=True, acknowledge=False
|
|
1223
1229
|
):
|
|
1224
1230
|
"""Offer to open a URL in the browser, returns True if opened."""
|
|
1231
|
+
import webbrowser
|
|
1232
|
+
|
|
1225
1233
|
if url in self.never_prompts:
|
|
1226
1234
|
return False
|
|
1227
1235
|
if await self.confirm_ask(
|
|
@@ -10,23 +10,19 @@ except Exception:
|
|
|
10
10
|
|
|
11
11
|
try:
|
|
12
12
|
if not os.getenv("CECLI_DEFAULT_TLS"):
|
|
13
|
-
import
|
|
13
|
+
from truststore import inject_into_ssl
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
inject_into_ssl()
|
|
16
16
|
except Exception as e:
|
|
17
17
|
print(e)
|
|
18
18
|
pass
|
|
19
19
|
|
|
20
20
|
import asyncio
|
|
21
21
|
import json
|
|
22
|
-
import os
|
|
23
22
|
import re
|
|
24
23
|
import shutil
|
|
25
|
-
import threading
|
|
26
24
|
import time
|
|
27
25
|
import traceback
|
|
28
|
-
import webbrowser
|
|
29
|
-
from dataclasses import fields
|
|
30
26
|
from pathlib import Path
|
|
31
27
|
|
|
32
28
|
try:
|
|
@@ -40,7 +36,6 @@ from dotenv import load_dotenv
|
|
|
40
36
|
if sys.platform == "win32":
|
|
41
37
|
if hasattr(asyncio, "set_event_loop_policy"):
|
|
42
38
|
asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
|
|
43
|
-
from prompt_toolkit.enums import EditingMode
|
|
44
39
|
|
|
45
40
|
from .dump import dump # noqa
|
|
46
41
|
|
|
@@ -476,8 +471,7 @@ def custom_tracer(frame, event, arg):
|
|
|
476
471
|
|
|
477
472
|
|
|
478
473
|
def main(argv=None, input=None, output=None, force_git_root=None, return_coder=False):
|
|
479
|
-
from cecli.
|
|
480
|
-
from cecli.hooks import HookService
|
|
474
|
+
from cecli.signals import ReloadProgramSignal
|
|
481
475
|
|
|
482
476
|
# Tracks the coder instance from a ReloadProgramSignal so the new
|
|
483
477
|
# main_async() can pass it as from_coder to Coder.create(), preserving
|
|
@@ -515,6 +509,8 @@ def main(argv=None, input=None, output=None, force_git_root=None, return_coder=F
|
|
|
515
509
|
# The old HookManager and HookRegistry instances are cached by UUID and
|
|
516
510
|
# would be reused by the new coder, causing hook registration failures.
|
|
517
511
|
if reload_from_coder:
|
|
512
|
+
from cecli.hooks import HookService
|
|
513
|
+
|
|
518
514
|
HookService.destroy_instances(reload_from_coder.uuid)
|
|
519
515
|
continue
|
|
520
516
|
|
|
@@ -678,7 +674,7 @@ async def main_async(
|
|
|
678
674
|
args.yes_always = True
|
|
679
675
|
if args.yes_always_commands:
|
|
680
676
|
args.yes_always = True
|
|
681
|
-
editing_mode =
|
|
677
|
+
editing_mode = "VI" if args.vim else "EMACS"
|
|
682
678
|
|
|
683
679
|
def get_io(pretty):
|
|
684
680
|
return InputOutput(
|
|
@@ -1015,6 +1011,8 @@ async def main_async(
|
|
|
1015
1011
|
if main_model.edit_format in ("diff", "whole", "diff-fenced"):
|
|
1016
1012
|
main_model.edit_format = "editor-" + main_model.edit_format
|
|
1017
1013
|
if args.verbose:
|
|
1014
|
+
from dataclasses import fields
|
|
1015
|
+
|
|
1018
1016
|
io.tool_output("Model metadata:")
|
|
1019
1017
|
io.tool_output(json.dumps(main_model.info, indent=4))
|
|
1020
1018
|
io.tool_output("Model settings:")
|
|
@@ -1256,6 +1254,8 @@ async def main_async(
|
|
|
1256
1254
|
args.edit_format = main_model.editor_edit_format
|
|
1257
1255
|
args.message = "/paste"
|
|
1258
1256
|
if args.show_release_notes is True:
|
|
1257
|
+
import webbrowser
|
|
1258
|
+
|
|
1259
1259
|
pre_init_io.tool_output(f"Opening release notes: {urls.release_notes}")
|
|
1260
1260
|
pre_init_io.tool_output()
|
|
1261
1261
|
webbrowser.open(urls.release_notes)
|
|
@@ -1457,6 +1457,8 @@ async def check_and_load_imports(io, is_first_run, verbose=False):
|
|
|
1457
1457
|
else:
|
|
1458
1458
|
if verbose:
|
|
1459
1459
|
io.tool_output("Not first run, loading imports in background thread")
|
|
1460
|
+
import threading
|
|
1461
|
+
|
|
1460
1462
|
thread = threading.Thread(target=load_slow_imports)
|
|
1461
1463
|
thread.daemon = True
|
|
1462
1464
|
thread.start()
|
|
@@ -1468,9 +1470,7 @@ async def check_and_load_imports(io, is_first_run, verbose=False):
|
|
|
1468
1470
|
|
|
1469
1471
|
def load_slow_imports(swallow=True):
|
|
1470
1472
|
try:
|
|
1471
|
-
import
|
|
1472
|
-
import litellm # noqa
|
|
1473
|
-
import numpy # noqa
|
|
1473
|
+
import cecli.llm # noqa
|
|
1474
1474
|
except Exception as e:
|
|
1475
1475
|
if not swallow:
|
|
1476
1476
|
raise e
|
|
@@ -1,12 +1,8 @@
|
|
|
1
1
|
import asyncio
|
|
2
|
-
import difflib
|
|
3
|
-
import hashlib
|
|
4
2
|
import importlib.resources
|
|
5
3
|
import json
|
|
6
|
-
import math
|
|
7
4
|
import os
|
|
8
5
|
import platform
|
|
9
|
-
import random
|
|
10
6
|
import sys
|
|
11
7
|
import time
|
|
12
8
|
from dataclasses import dataclass, fields
|
|
@@ -975,6 +971,8 @@ class Model(ModelSettings):
|
|
|
975
971
|
:param fname: The filename of the image.
|
|
976
972
|
:return: The token cost for the image.
|
|
977
973
|
"""
|
|
974
|
+
import math
|
|
975
|
+
|
|
978
976
|
width, height = self.get_image_size(fname)
|
|
979
977
|
max_dimension = max(width, height)
|
|
980
978
|
if max_dimension > 2048:
|
|
@@ -1224,6 +1222,10 @@ class Model(ModelSettings):
|
|
|
1224
1222
|
override_kwargs={},
|
|
1225
1223
|
interrupt_event=None,
|
|
1226
1224
|
):
|
|
1225
|
+
import random
|
|
1226
|
+
|
|
1227
|
+
import xxhash
|
|
1228
|
+
|
|
1227
1229
|
if os.environ.get("CECLI_SANITY_CHECK_TURNS"):
|
|
1228
1230
|
sanity_check_messages(messages)
|
|
1229
1231
|
messages = model_request_parser(self, messages, tools)
|
|
@@ -1305,7 +1307,7 @@ class Model(ModelSettings):
|
|
|
1305
1307
|
num_ctx = int(self.token_count(messages) * 1.25) + 8192
|
|
1306
1308
|
kwargs["num_ctx"] = num_ctx
|
|
1307
1309
|
key = json.dumps(kwargs, sort_keys=True).encode()
|
|
1308
|
-
hash_object =
|
|
1310
|
+
hash_object = xxhash.xxh64(key)
|
|
1309
1311
|
if "timeout" not in kwargs:
|
|
1310
1312
|
kwargs["timeout"] = request_timeout
|
|
1311
1313
|
if self.verbose:
|
|
@@ -1713,6 +1715,7 @@ def get_chat_model_names(query: str = "") -> list:
|
|
|
1713
1715
|
|
|
1714
1716
|
|
|
1715
1717
|
def fuzzy_match_models(name):
|
|
1718
|
+
import difflib
|
|
1716
1719
|
import fnmatch
|
|
1717
1720
|
|
|
1718
1721
|
# Handle empty string case - return all models
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Control-flow signal exceptions for cecli.
|
|
3
|
+
|
|
4
|
+
These signals are used for non-error control flow (like switching coders
|
|
5
|
+
or reloading the program). They inherit from BaseException to avoid being
|
|
6
|
+
caught by generic `except Exception` handlers.
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class SwitchCoderSignal(BaseException):
|
|
11
|
+
"""
|
|
12
|
+
Signal to switch the current Coder instance to a new configuration.
|
|
13
|
+
|
|
14
|
+
This is NOT an error - it's a control flow signal used to propagate
|
|
15
|
+
coder switching requests up through the async call stack. It carries
|
|
16
|
+
the kwargs needed to create a new Coder instance.
|
|
17
|
+
|
|
18
|
+
Note: Inherits from BaseException (like KeyboardInterrupt and SystemExit)
|
|
19
|
+
to avoid being caught by generic `except Exception` handlers, making the
|
|
20
|
+
non-error nature of this signal explicit.
|
|
21
|
+
|
|
22
|
+
Attributes:
|
|
23
|
+
kwargs: Configuration dict passed to Coder.create() for the new instance
|
|
24
|
+
placeholder: Optional placeholder text for the input prompt
|
|
25
|
+
"""
|
|
26
|
+
|
|
27
|
+
def __init__(self, placeholder=None, **kwargs):
|
|
28
|
+
self.kwargs = kwargs
|
|
29
|
+
self.placeholder = placeholder
|
|
30
|
+
super().__init__()
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
class ReloadProgramSignal(BaseException):
|
|
34
|
+
"""
|
|
35
|
+
Signal to reload the entire program configuration.
|
|
36
|
+
|
|
37
|
+
This is NOT an error - it's a control flow signal used to trigger
|
|
38
|
+
a full program reload, re-parsing config files and re-initializing
|
|
39
|
+
all components. Useful for hot-reloading when configuration files
|
|
40
|
+
change.
|
|
41
|
+
|
|
42
|
+
Note: Inherits from BaseException (like KeyboardInterrupt and SystemExit)
|
|
43
|
+
to avoid being caught by generic `except Exception` handlers.
|
|
44
|
+
"""
|
|
45
|
+
|
|
46
|
+
def __init__(self, message="Reloading program configuration...", **kwargs):
|
|
47
|
+
self.kwargs = kwargs
|
|
48
|
+
self.message = message
|
|
49
|
+
super().__init__(self.message)
|
|
@@ -10,7 +10,6 @@ import tempfile
|
|
|
10
10
|
from pathlib import Path
|
|
11
11
|
|
|
12
12
|
from cecli.dump import dump # noqa: F401
|
|
13
|
-
from cecli.waiting import Spinner
|
|
14
13
|
|
|
15
14
|
IMAGE_EXTENSIONS = {".png", ".jpg", ".jpeg", ".gif", ".bmp", ".tiff", ".webp", ".pdf"}
|
|
16
15
|
|
|
@@ -311,6 +310,8 @@ def run_install(cmd):
|
|
|
311
310
|
pass # Continue even if ensurepip fails
|
|
312
311
|
|
|
313
312
|
try:
|
|
313
|
+
from cecli.waiting import Spinner
|
|
314
|
+
|
|
314
315
|
output = []
|
|
315
316
|
process = subprocess.Popen(
|
|
316
317
|
cmd,
|
|
@@ -4,13 +4,13 @@
|
|
|
4
4
|
A simple wrapper for rich.status to provide a spinner.
|
|
5
5
|
"""
|
|
6
6
|
|
|
7
|
-
from rich.console import Console
|
|
8
|
-
|
|
9
7
|
|
|
10
8
|
class Spinner:
|
|
11
9
|
"""A wrapper around rich.status.Status for displaying a spinner."""
|
|
12
10
|
|
|
13
11
|
def __init__(self, text: str = "Waiting..."):
|
|
12
|
+
from rich.console import Console
|
|
13
|
+
|
|
14
14
|
self.text = text
|
|
15
15
|
self.console = Console()
|
|
16
16
|
self.status = None
|
|
@@ -34,7 +34,7 @@ class TestCoder:
|
|
|
34
34
|
def setup(self, gpt35_model):
|
|
35
35
|
self.uuid = str(uuid.uuid4())
|
|
36
36
|
self.GPT35 = gpt35_model
|
|
37
|
-
self.webbrowser_patcher = patch("
|
|
37
|
+
self.webbrowser_patcher = patch("webbrowser.open")
|
|
38
38
|
self.mock_webbrowser = self.webbrowser_patcher.start()
|
|
39
39
|
# Reset conversation system before each test
|
|
40
40
|
ConversationService.get_chunks(self).reset()
|
|
@@ -73,7 +73,7 @@ def test_env(mocker, temp_cwd, temp_home):
|
|
|
73
73
|
test_env_vars["HOME"] = temp_home
|
|
74
74
|
mocker.patch.dict(os.environ, test_env_vars)
|
|
75
75
|
mocker.patch("builtins.input", return_value=None)
|
|
76
|
-
mocker.patch("
|
|
76
|
+
mocker.patch("webbrowser.open")
|
|
77
77
|
|
|
78
78
|
|
|
79
79
|
@pytest.fixture
|
|
@@ -31,14 +31,6 @@ def _install_stubs():
|
|
|
31
31
|
sys.modules["PIL.Image"] = image_module
|
|
32
32
|
sys.modules["PIL.ImageGrab"] = image_grab_module
|
|
33
33
|
|
|
34
|
-
if "numpy" not in sys.modules:
|
|
35
|
-
numpy_module = types.ModuleType("numpy")
|
|
36
|
-
numpy_module.ndarray = object
|
|
37
|
-
numpy_module.array = lambda *a, **k: None
|
|
38
|
-
numpy_module.dot = lambda *a, **k: 0.0
|
|
39
|
-
numpy_module.linalg = types.SimpleNamespace(norm=lambda *a, **k: 1.0)
|
|
40
|
-
sys.modules["numpy"] = numpy_module
|
|
41
|
-
|
|
42
34
|
if "oslex" not in sys.modules:
|
|
43
35
|
oslex_module = types.ModuleType("oslex")
|
|
44
36
|
oslex_module.__all__ = []
|