cecli-dev 1.2.0__tar.gz → 1.2.1__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.2.0 → cecli_dev-1.2.1}/PKG-INFO +1 -1
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/_version.py +3 -3
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/coders/base_coder.py +25 -4
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/agents/defaults/memorizer.md +5 -3
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/background_commands.py +4 -1
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/memory/utils.py +54 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/responses.py +47 -6
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/skills.py +58 -1
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/main.py +1 -1
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tools/command.py +1 -1
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tools/search_facts.py +0 -5
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/config/adv-model-settings.md +4 -4
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/config/model-configuration.md +2 -2
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/config/skills.md +8 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/llms/bedrock.md +3 -14
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/llms/gemini.md +0 -12
- cecli_dev-1.2.1/cecli/website/docs/llms/github.md +22 -0
- cecli_dev-1.2.1/cecli/website/docs/llms/other.md +46 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/llms/warnings.md +1 -1
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/troubleshooting/imports.md +0 -1
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/troubleshooting/support.md +2 -2
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/troubleshooting/warnings.md +1 -2
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli_dev.egg-info/PKG-INFO +1 -1
- cecli_dev-1.2.1/cecli_dev.egg-info/scm_version.json +8 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_main.py +0 -25
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_sanity_check_repo.py +20 -2
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/tools/test_tool_arguments.py +94 -0
- cecli_dev-1.2.0/cecli/website/docs/llms/github.md +0 -22
- cecli_dev-1.2.0/cecli/website/docs/llms/other.md +0 -92
- cecli_dev-1.2.0/cecli_dev.egg-info/scm_version.json +0 -8
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/.dockerignore +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/.flake8 +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/.gitattributes +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/.github/ISSUE_TEMPLATE/issue.yml +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/.github/workflows/check_pypi_version.yml +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/.github/workflows/docker-build-test.yml +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/.github/workflows/docker-release.yml +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/.github/workflows/issues.yml +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/.github/workflows/pages.yml +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/.github/workflows/pre-commit.yml +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/.github/workflows/release.yml +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/.github/workflows/ubuntu-tests.yml +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/.github/workflows/windows-tests.yml +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/.github/workflows/windows_check_pypi_version.yml +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/.gitignore +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/.pre-commit-config.yaml +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/CHANGELOG.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/CNAME +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/CONTRIBUTING.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/HISTORY.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/LICENSE.txt +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/MANIFEST.in +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/README.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/benchmark/Dockerfile +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/benchmark/README.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/benchmark/__init__.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/benchmark/benchmark.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/benchmark/benchmark_classic.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/benchmark/clone-exercism.sh +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/benchmark/cpp-test.sh +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/benchmark/docker.sh +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/benchmark/docker_build.sh +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/benchmark/install-docker-ubuntu.sh +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/benchmark/npm-test.sh +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/benchmark/over_time.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/benchmark/plot.sh +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/benchmark/plots.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/benchmark/problem_stats.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/benchmark/prompts.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/benchmark/refactor_tools.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/benchmark/rsync.sh +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/benchmark/rungrid.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/benchmark/swe-bench-lite.txt +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/benchmark/swe-bench.txt +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/benchmark/swe_bench.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/benchmark/test_benchmark.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/benchmark/variations.1.sh +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/benchmark/variations.2.sh +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/benchmark/variations.3.sh +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/benchmark/variations.4.sh +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/__init__.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/__main__.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/args.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/args_formatter.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/change_tracker.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/coders/__init__.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/coders/agent_coder.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/coders/architect_coder.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/coders/ask_coder.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/coders/chat_chunks.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/coders/context_coder.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/coders/copypaste_coder.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/coders/editblock_coder.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/coders/editblock_fenced_coder.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/coders/editblock_func_coder.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/coders/editor_diff_fenced_coder.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/coders/editor_editblock_coder.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/coders/editor_whole_coder.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/coders/hashline_coder.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/coders/help_coder.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/coders/patch_coder.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/coders/search_replace.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/coders/shell.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/coders/single_wholefile_func_coder.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/coders/sub_agent_coder.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/coders/udiff_coder.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/coders/udiff_simple.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/coders/wholefile_coder.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/coders/wholefile_func_coder.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/__init__.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/add.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/agent.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/agent_model.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/agent_tree.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/architect.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/ask.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/auto_memory.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/chat_mode.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/clear.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/code.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/command_prefix.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/commit.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/compact.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/context.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/context_blocks.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/context_management.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/copy.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/copy_context.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/core.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/diff.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/drop.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/editor.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/editor_model.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/exclude_skill.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/exit.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/git.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/hashline.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/help.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/history_search.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/hooks.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/hot_reload.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/include_skill.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/lint.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/list_mcp.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/list_queue.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/list_sessions.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/list_skills.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/load.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/load_hook.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/load_mcp.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/load_session.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/load_skill.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/ls.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/map.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/map_refresh.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/merge.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/model.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/models.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/multiline_mode.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/paste.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/queue.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/quit.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/read_only.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/read_only_stub.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/reap_agent.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/reasoning_effort.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/remove_hook.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/remove_mcp.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/remove_memory.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/remove_queue.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/remove_skill.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/report.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/reset.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/rules.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/run.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/save.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/save_session.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/search_memory.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/settings.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/spawn_agent.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/switch_agent.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/terminal_data/linux.keytab +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/terminal_setup.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/test.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/think_tokens.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/tokens.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/undo.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/utils/__init__.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/utils/base_command.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/utils/helpers.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/utils/registry.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/utils/save_load_manager.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/voice.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/weak_model.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/web.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/workspace.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/decoding.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/deprecated_args.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/diffs.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/dump.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/editor.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/exceptions.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/format_settings.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/help.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/help_pats.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/__init__.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/agents/__init__.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/agents/config.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/agents/defaults/__init__.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/agents/defaults/worker.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/agents/service.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/command_parser.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/command_queue.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/config_utils.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/conversation/__init__.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/conversation/base_message.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/conversation/files.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/conversation/integration.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/conversation/manager.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/conversation/service.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/conversation/tags.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/conversation/utils.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/copypaste.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/coroutines.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/crypto.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/file_searcher.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/file_system/__init__.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/file_system/builders.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/file_system/ignore.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/file_system/ngram_index.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/file_system/service.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/file_system/trie_index.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/grep_ast/__init__.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/grep_ast/dump.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/grep_ast/grep_ast.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/grep_ast/main.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/grep_ast/parsers.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/grep_ast/tsl.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/hashline.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/hashpos/__init__.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/hashpos/hashpos.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/hashpos/hashpos.v1.bak +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/hashpos/transformations.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/io_proxy.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/leak_detect.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/llms/__init__.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/llms/aws_sigv4.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/llms/config.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/llms/domains/__init__.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/llms/domains/bedrock.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/llms/domains/chat.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/llms/domains/gemini.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/llms/domains/messages.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/llms/domains/responses.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/llms/formatters/__init__.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/llms/formatters/reasoning.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/llms/formatters/thinking.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/llms/identifiers.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/llms/litellm_compat.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/llms/pipeline.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/llms/providers/__init__.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/llms/providers/anthropic.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/llms/providers/azure.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/llms/providers/base.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/llms/providers/bedrock.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/llms/providers/bedrock_mantle.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/llms/providers/deepseek.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/llms/providers/gemini.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/llms/providers/github_copilot.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/llms/providers/meta.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/llms/providers/openai.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/llms/providers/openrouter.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/llms/runtime.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/llms/types.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/llms/utils.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/lock_detect.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/memory/__init__.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/memory/db.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/memory_control.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/model_config/__init__.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/model_config/agent.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/model_config/api.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/model_config/formatters/__init__.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/model_config/formatters/reasoning.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/model_config/formatters/thinking.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/model_config/identifiers.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/model_config/llm.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/model_config/pipeline.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/model_config/utils.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/model_providers.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/monorepo/__init__.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/monorepo/config.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/monorepo/local_workspace.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/monorepo/project.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/monorepo/workspace.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/monorepo/worktree.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/nested.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/observations/__init__.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/observations/service.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/orchestration/__init__.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/orchestration/agent_proxy.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/orchestration/environment.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/orchestration/region_resolver.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/orchestration/safe_methods.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/orchestration/security.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/orchestration/service.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/orchestration/tool_proxy.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/plugin_manager.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/profiler.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/queues.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/requests.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/server/__init__.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/server/acp/__init__.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/server/acp/bridge.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/server/acp/models.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/server/acp/protocol.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/server/signals.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/server/ws_server.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/similarity.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/threading.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/history.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/hooks/__init__.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/hooks/base.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/hooks/helpers.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/hooks/integration.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/hooks/manager.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/hooks/registry.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/hooks/service.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/hooks/types.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/http.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/interruptible_input.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/io.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/linter.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/llm.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/mcp/__init__.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/mcp/manager.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/mcp/oauth.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/mcp/server.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/mcp/utils.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/mdstream.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/models.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/onboarding.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/prompts/__init__.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/prompts/agent.yml +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/prompts/architect.yml +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/prompts/ask.yml +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/prompts/base.yml +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/prompts/context.yml +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/prompts/copypaste.yml +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/prompts/editblock.yml +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/prompts/editblock_fenced.yml +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/prompts/editblock_func.yml +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/prompts/editor_diff_fenced.yml +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/prompts/editor_editblock.yml +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/prompts/editor_whole.yml +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/prompts/hashline.yml +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/prompts/help.yml +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/prompts/patch.yml +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/prompts/single_wholefile_func.yml +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/prompts/subagent.yml +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/prompts/udiff.yml +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/prompts/udiff_simple.yml +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/prompts/utils/__init__.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/prompts/utils/registry.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/prompts/utils/system.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/prompts/wholefile.yml +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/prompts/wholefile_func.yml +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-language-pack/README.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-language-pack/arduino-tags.scm +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-language-pack/bash-tags.scm +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-language-pack/c-tags.scm +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-language-pack/chatito-tags.scm +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-language-pack/clojure-tags.scm +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-language-pack/commonlisp-tags.scm +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-language-pack/cpp-tags.scm +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-language-pack/csharp-tags.scm +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-language-pack/d-tags.scm +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-language-pack/dart-tags.scm +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-language-pack/elisp-tags.scm +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-language-pack/elixir-tags.scm +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-language-pack/elm-tags.scm +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-language-pack/gleam-tags.scm +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-language-pack/go-tags.scm +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-language-pack/java-tags.scm +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-language-pack/javascript-tags.scm +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-language-pack/lua-tags.scm +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-language-pack/matlab-tags.scm +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-language-pack/ocaml-tags.scm +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-language-pack/ocaml_interface-tags.scm +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-language-pack/pony-tags.scm +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-language-pack/properties-tags.scm +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-language-pack/python-tags.scm +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-language-pack/r-tags.scm +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-language-pack/racket-tags.scm +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-language-pack/ruby-tags.scm +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-language-pack/rust-tags.scm +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-language-pack/solidity-tags.scm +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-language-pack/swift-tags.scm +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-language-pack/udev-tags.scm +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-languages/README.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-languages/bash-tags.scm +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-languages/c-tags.scm +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-languages/c_sharp-tags.scm +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-languages/cpp-tags.scm +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-languages/dart-tags.scm +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-languages/elisp-tags.scm +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-languages/elixir-tags.scm +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-languages/elm-tags.scm +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-languages/fortran-tags.scm +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-languages/go-tags.scm +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-languages/haskell-tags.scm +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-languages/hcl-tags.scm +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-languages/java-tags.scm +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-languages/javascript-tags.scm +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-languages/julia-tags.scm +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-languages/kotlin-tags.scm +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-languages/matlab-tags.scm +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-languages/ocaml-tags.scm +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-languages/ocaml_interface-tags.scm +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-languages/php-tags.scm +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-languages/python-tags.scm +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-languages/ql-tags.scm +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-languages/ruby-tags.scm +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-languages/rust-tags.scm +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-languages/scala-tags.scm +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-languages/typescript-tags.scm +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-languages/zig-tags.scm +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/reasoning_tags.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/repo.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/repomap.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/report.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/resources/__init__.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/resources/model-metadata.json +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/resources/model-settings-condensed.yml +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/resources/model-settings.yml +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/resources/providers.json +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/run_cmd.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/scrape.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/sendchat.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/sessions.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/signals.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/special.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tests/test_queue_commands.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tools/__init__.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tools/_yield.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tools/delegate.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tools/edit_file.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tools/explore_code.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tools/git_branch.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tools/git_diff.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tools/git_log.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tools/git_remote.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tools/git_show.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tools/git_status.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tools/grep.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tools/ls.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tools/orchestrate.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tools/read_file.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tools/replace_facts.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tools/resource_manager.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tools/thinking.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tools/undo_change.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tools/update_todo_list.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tools/utils/__init__.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tools/utils/base_tool.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tools/utils/helpers.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tools/utils/output.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tools/utils/registry.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tools/utils/responses.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tools/validations/__init__.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tools/validations/validations.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tui/__init__.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tui/app.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tui/io.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tui/styles.tcss +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tui/widgets/__init__.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tui/widgets/completion_bar.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tui/widgets/file_list.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tui/widgets/footer.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tui/widgets/input_area.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tui/widgets/input_container.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tui/widgets/key_hints.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tui/widgets/output.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tui/widgets/output_alt.bak +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tui/widgets/selectable_log.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tui/widgets/status_bar.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tui/widgets/subagent_pills.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tui/worker.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/urls.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/utils.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/versioncheck.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/voice.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/waiting.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/watch.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/watch_prompts.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/_includes/blame.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/_includes/get-started.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/_includes/help-tip.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/_includes/help.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/_includes/install.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/_includes/keys.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/_includes/model-warnings.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/_includes/multi-line.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/_includes/python-m-aider.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/_includes/recording.css +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/_includes/recording.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/_includes/works-best.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/_sass/_features.scss +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/_sass/_footer.scss +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/_sass/_hero.scss +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/_sass/_info.scss +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/_sass/_layout.scss +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/_sass/_reset.scss +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/_sass/_testimonials.scss +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/_sass/_typography.scss +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/_sass/_variables.scss +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/_sass/custom/custom.scss +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/_sass/global-overrides.scss +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docmd.config.json +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/cecli-temp-logo-favicon.svg +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/config/agent-mode.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/config/api-keys.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/config/api.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/config/conf.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/config/custom-commands.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/config/custom-system-prompts.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/config/dotenv.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/config/editor.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/config/hooks.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/config/mcp.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/config/model-aliases.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/config/model-providers.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/config/options.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/config/persistent-memory.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/config/reasoning.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/config/retries.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/config/security.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/config/subagents.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/config/tui.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/config/workspaces.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/config.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/git.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/index.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/install/docker.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/install.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/languages.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/legal/contributor-agreement.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/legal/privacy.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/llms/anthropic.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/llms/azure.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/llms/cohere.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/llms/deepseek.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/llms/groq.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/llms/lm-studio.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/llms/ollama.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/llms/openai-compat.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/llms/openai.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/llms/openrouter.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/llms/vertex.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/llms/xai.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/llms.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/more/analytics.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/more/edit-formats.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/more/infinite-output.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/more-info.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/repomap.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/scripting.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/troubleshooting/cecli-not-found.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/troubleshooting/edit-errors.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/troubleshooting/models-and-keys.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/troubleshooting/token-limits.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/troubleshooting.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/usage/commands.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/usage/conventions.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/usage/copypaste.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/usage/images-urls.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/usage/lint-test.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/usage/modes.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/usage/not-code.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/usage/notifications.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/usage/optional.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/usage/sessions.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/usage/tips.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/usage/voice.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/usage/watch.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/usage.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/package-lock.json +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/package.json +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/share/index.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli_dev.egg-info/SOURCES.txt +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli_dev.egg-info/dependency_links.txt +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli_dev.egg-info/entry_points.txt +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli_dev.egg-info/requires.txt +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli_dev.egg-info/scm_file_list.json +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli_dev.egg-info/top_level.txt +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/docker/Dockerfile +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/docker/Dockerfile.local.nvidia.cuda.ubuntu +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/pyproject.toml +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/pytest.ini +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/requirements/common-constraints.txt +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/requirements/requirements-dev.in +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/requirements/requirements-dev.txt +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/requirements/requirements-help.in +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/requirements/requirements-help.txt +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/requirements/requirements-playwright.in +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/requirements/requirements-playwright.txt +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/requirements/requirements.in +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/requirements/tree-sitter.in +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/requirements.txt +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/scripts/30k-image.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/scripts/__init__.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/scripts/blame.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/scripts/clean_metadata.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/scripts/compare-message-history.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/scripts/condense_model_settings.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/scripts/cost_analyzer.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/scripts/cost_calculator.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/scripts/dl_icons.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/scripts/docmd_build.sh +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/scripts/filter-chat-mode.js +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/scripts/generate_providers.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/scripts/get_contributor_list.js +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/scripts/get_hashline.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/scripts/history_prompts.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/scripts/homepage.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/scripts/issues.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/scripts/logo_svg.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/scripts/optimize_tokens.sh +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/scripts/pip-compile.sh +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/scripts/recording_audio.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/scripts/redact-cast.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/scripts/rename_to_cecli.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/scripts/tmux_record.sh +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/scripts/tsl_pack_langs.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/scripts/update-blame.sh +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/scripts/update-docs.sh +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/scripts/update-history.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/scripts/versionbump.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/scripts/yank-old-versions.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/setup.cfg +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/shim.pyproject.toml +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/__init__.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/__init__.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/conftest.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_agent_config_merge.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_aws_credentials.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_background_commands.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_coder.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_commands.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_custom_commands.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_deprecated.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_editblock.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_editor.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_exceptions.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_find_or_blocks.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_hashline.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_hashline_closure.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_history.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_io.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_linter.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_model_info_manager.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_model_provider_manager.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_models.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_onboarding.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_plugin_manager.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_prompts.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_reasoning.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_repo.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_repomap.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_run_cmd.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_scripting.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_select_selector.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_sendchat.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_session_args.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_session_crypto.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_sessions.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_sessions_manager.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_skills.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_special.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_spinner.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_ssl_verification.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_udiff.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_urls.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_voice.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_watch.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_wholefile.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/coders/test_coder_switching.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/coders/test_copypaste_coder.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/coders/test_tool_call_consolidation.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/commands/test_auto_memory.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/commands/test_compaction.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/commands/test_remove_memory.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/commands/test_search_memory.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/commands/test_switch_agent.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/conftest.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/conversations/test_conversation_integration.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/conversations/test_conversation_system.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/chat-history-search-replace-gold.txt +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/chat-history.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/arduino/test.ino +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/bash/test.sh +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/c/test.c +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/chatito/test.chatito +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/clojure/test.clj +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/commonlisp/test.lisp +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/cpp/test.cpp +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/csharp/test.cs +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/d/test.d +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/dart/test.dart +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/elisp/test.el +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/elixir/test.ex +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/elm/test.elm +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/gleam/test.gleam +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/go/test.go +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/haskell/test.hs +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/hcl/test.tf +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/java/test.java +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/javascript/test.js +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/kotlin/test.kt +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/lua/test.lua +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/matlab/test.m +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/ocaml/test.ml +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/ocaml_interface/test.mli +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/php/test.php +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/pony/test.pony +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/properties/test.properties +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/python/test.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/ql/test.ql +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/r/test.r +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/racket/test.rkt +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/ruby/test.rb +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/rust/test.rs +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/scala/test.scala +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/solidity/test.sol +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/swift/test.swift +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/tsx/test.tsx +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/typescript/test.ts +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/udev/test.rules +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/zig/test.zig +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/sample-code-base/sample.js +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/sample-code-base/sample.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/sample-code-base-repo-map.txt +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/watch.js +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/watch.lisp +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/watch.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/watch_question.js +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/help/test_help.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/helpers/monorepo/LOCAL_WORKSPACE.md +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/helpers/monorepo/test_config.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/helpers/monorepo/test_config_active.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/helpers/monorepo/test_ignore_logic.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/helpers/monorepo/test_local_workspace.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/helpers/monorepo/test_repomap_workspace.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/helpers/monorepo/test_workspace.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/helpers/observations/test_observation_service.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/helpers/server/acp/__init__.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/helpers/server/acp/test_bridge.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/helpers/server/acp/test_dispatch.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/helpers/server/acp/test_models.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/helpers/server/acp/test_protocol.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/helpers/test_llms_api_base.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/helpers/test_llms_aws_sigv4.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/helpers/test_llms_github_copilot_auth.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/helpers/test_llms_hyperscalers.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/helpers/test_llms_providers_json.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/helpers/test_llms_reasoning_config.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/helpers/test_llms_reasoning_extract.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/helpers/test_llms_vision.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/helpers/test_memory_control.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/helpers/test_model_config.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/helpers/test_orchestration.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/hooks/__init__.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/hooks/test_base.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/hooks/test_manager.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/hooks/test_registry.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/integration/test_agent_mcp_management.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/integration/test_config_loading.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/integration/test_mcp_management.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/mcp/__init__.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/mcp/conftest.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/mcp/mock_server.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/mcp/test_keepalive_concurrency.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/mcp/test_keepalive_config.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/mcp/test_keepalive_integration.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/mcp/test_keepalive_logging.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/mcp/test_keepalive_resilience.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/mcp/test_keepalive_unit.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/mcp/test_manager.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/mcp/test_manager_retry.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/mcp/test_server_sdk_compat.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/scrape/test_playwright_disable.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/scrape/test_scrape.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/subagents/__init__.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/subagents/conftest.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/subagents/test_commands.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/subagents/test_config.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/subagents/test_delegate.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/subagents/test_finished.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/subagents/test_io_proxy.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/subagents/test_service.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/subagents/test_sub_agent_coder.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/test_requests.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/tools/test_edit_file_format_output.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/tools/test_extractions.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/tools/test_get_lines.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/tools/test_git_branch.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/tools/test_git_diff.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/tools/test_grep.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/tools/test_insert_block.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/tools/test_read_range_execute.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/tools/test_registry.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/tools/test_remove_mcp_tool.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/tools/test_tools_load_mcp_tool.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/tools/validations.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/tui/test_app.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/unit/conftest.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/unit/test_deep_merge.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/unit/test_edge_cases.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/unit/test_load_mcp.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/unit/test_performance.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/unit/test_queues.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/unit/test_remove_mcp.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/unit/test_shallow_merge.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/unit/test_signals.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/unit/test_unit_load_mcp_tool.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/unit/test_unit_remove_mcp_tool.py +0 -0
- {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/unit/test_ws_server.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.2.
|
|
22
|
-
__version_tuple__ = version_tuple = (1, 2,
|
|
21
|
+
__version__ = version = '1.2.1'
|
|
22
|
+
__version_tuple__ = version_tuple = (1, 2, 1)
|
|
23
23
|
|
|
24
|
-
__commit_id__ = commit_id = '
|
|
24
|
+
__commit_id__ = commit_id = 'g9eedb354e'
|
|
@@ -892,7 +892,7 @@ class Coder(metaclass=UsageMeta):
|
|
|
892
892
|
rel_repo_dir = self.repo.get_rel_repo_dir()
|
|
893
893
|
num_files = len(self.repo.get_tracked_files())
|
|
894
894
|
env_items.append(f"{rel_repo_dir} ({num_files:,} files)")
|
|
895
|
-
if num_files > 1000:
|
|
895
|
+
if num_files > 1000 and self.verbose:
|
|
896
896
|
env_items.append(
|
|
897
897
|
"Warning: For large repos, consider using --subtree-only and .cecli.ignore"
|
|
898
898
|
)
|
|
@@ -1759,6 +1759,7 @@ class Coder(metaclass=UsageMeta):
|
|
|
1759
1759
|
except (SwitchCoderSignal, SystemExit):
|
|
1760
1760
|
raise
|
|
1761
1761
|
except Exception as e:
|
|
1762
|
+
self.error_code = 1
|
|
1762
1763
|
traceback_str = traceback.format_exc()
|
|
1763
1764
|
update_error_prefix(traceback_str)
|
|
1764
1765
|
|
|
@@ -2759,6 +2760,7 @@ class Coder(metaclass=UsageMeta):
|
|
|
2759
2760
|
dict(role="assistant", content=self.multi_response_content, prefix=True)
|
|
2760
2761
|
)
|
|
2761
2762
|
except Exception as err:
|
|
2763
|
+
self.error_code = 1
|
|
2762
2764
|
self.mdstream = None
|
|
2763
2765
|
lines = traceback.format_exception(type(err), err, err.__traceback__)
|
|
2764
2766
|
self.io.tool_warning("".join(lines))
|
|
@@ -3253,6 +3255,12 @@ class Coder(metaclass=UsageMeta):
|
|
|
3253
3255
|
if not isinstance(arguments, dict):
|
|
3254
3256
|
arguments = {}
|
|
3255
3257
|
|
|
3258
|
+
# Some models mirror the OpenAI wire format and wrap the real params
|
|
3259
|
+
# under a single "arguments"/"parameters"/"params" key. Unwrap so the
|
|
3260
|
+
# server receives the actual parameters instead of rejecting the call
|
|
3261
|
+
# with a "missing required parameter" error.
|
|
3262
|
+
arguments = responses.coerce_tool_structure(arguments)
|
|
3263
|
+
|
|
3256
3264
|
return await session.call_tool(name=name, arguments=arguments)
|
|
3257
3265
|
|
|
3258
3266
|
async def process_tool_calls(self, tool_call_response):
|
|
@@ -3508,6 +3516,7 @@ class Coder(metaclass=UsageMeta):
|
|
|
3508
3516
|
# but response.dict() is the Pydantic V1 method name.
|
|
3509
3517
|
response_dict = dict(response)
|
|
3510
3518
|
except TypeError:
|
|
3519
|
+
self.error_code = 1
|
|
3511
3520
|
self.io.tool_warning("Response parsing error.")
|
|
3512
3521
|
return
|
|
3513
3522
|
|
|
@@ -4277,9 +4286,21 @@ class Coder(metaclass=UsageMeta):
|
|
|
4277
4286
|
cache_hit_tokens = 0
|
|
4278
4287
|
cache_write_tokens = 0
|
|
4279
4288
|
|
|
4280
|
-
if
|
|
4281
|
-
|
|
4282
|
-
|
|
4289
|
+
if (
|
|
4290
|
+
completion
|
|
4291
|
+
and nested.getter(completion, "usage.prompt_tokens") is not None
|
|
4292
|
+
and nested.getter(completion, "usage.completion_tokens") is not None
|
|
4293
|
+
):
|
|
4294
|
+
prompt_tokens = (
|
|
4295
|
+
nested.getter(completion.usage, "prompt_tokens", 0)
|
|
4296
|
+
or nested.getter(completion.usage, "prompt_eval_count", 0)
|
|
4297
|
+
or 0
|
|
4298
|
+
)
|
|
4299
|
+
completion_tokens = (
|
|
4300
|
+
nested.getter(completion.usage, "completion_tokens", 0)
|
|
4301
|
+
or nested.getter(completion.usage, "eval_count", 0)
|
|
4302
|
+
or 0
|
|
4303
|
+
)
|
|
4283
4304
|
cache_hit_tokens = (
|
|
4284
4305
|
getattr(completion.usage, "prompt_cache_hit_tokens", 0)
|
|
4285
4306
|
or getattr(completion.usage, "cache_read_input_tokens", 0)
|
|
@@ -46,7 +46,6 @@ Use these tags (and invent new ones as needed) to categorise facts:
|
|
|
46
46
|
- **relationships** – how modules / systems interact with each other
|
|
47
47
|
- **decisions** – architectural or design choices that were made and why
|
|
48
48
|
- **entities** – important classes, functions, or data structures
|
|
49
|
-
- **changes** – summaries of changes made and their intent
|
|
50
49
|
|
|
51
50
|
## Tools
|
|
52
51
|
|
|
@@ -67,10 +66,13 @@ context (e.g. compaction / yield summaries). Your job:
|
|
|
67
66
|
2. Use ReplaceFacts to insert new facts and delete the obsolete ones so
|
|
68
67
|
the database stays clean and up-to-date.
|
|
69
68
|
3. Task specific details are not worth recording, focus on user intention and add facts
|
|
70
|
-
that would help them explain the project to another person succinctly
|
|
69
|
+
that would help them explain the project to another person succinctly.
|
|
70
|
+
4. Record notes on strategy, purpose, structure, expectations, and unintuitive/novel discoveries over project
|
|
71
|
+
and activity specific details.
|
|
72
|
+
We are trying to preserve why we took the actions we have done, not a log of the actions themselves.
|
|
71
73
|
|
|
72
74
|
Start each response with an incrementing number at the beginning, e.g. "1) ...", "2) ..."
|
|
73
|
-
|
|
75
|
+
Before this number hits at most 10, update what you can and yield. Do not deliberate over many turns.
|
|
74
76
|
Important facts will be easy to search for and extract from the given context.
|
|
75
77
|
|
|
76
78
|
Always prefer **concrete, reusable** facts over vague prose.
|
|
@@ -12,6 +12,8 @@ import threading
|
|
|
12
12
|
from collections import deque
|
|
13
13
|
from typing import Dict, List, Optional, Tuple
|
|
14
14
|
|
|
15
|
+
import xxhash
|
|
16
|
+
|
|
15
17
|
from cecli.decoding import safe_open
|
|
16
18
|
|
|
17
19
|
try:
|
|
@@ -419,7 +421,8 @@ class BackgroundCommandManager:
|
|
|
419
421
|
Unique command key
|
|
420
422
|
"""
|
|
421
423
|
with cls._lock:
|
|
422
|
-
|
|
424
|
+
digest = xxhash.xxh64(command.encode("utf-8")).intdigest()
|
|
425
|
+
key = f"bg_{cls._next_id}_{digest % 10000:04d}"
|
|
423
426
|
cls._next_id += 1
|
|
424
427
|
return key
|
|
425
428
|
|
|
@@ -6,6 +6,7 @@ Public API
|
|
|
6
6
|
- ``add_fact(fact=..., tags=[...])`` – insert a fact with optional tags
|
|
7
7
|
- ``remove_facts(id_facts=[...])`` – delete facts by id
|
|
8
8
|
- ``search_facts(words=[...], tags=[...])`` – full-text search the fact store
|
|
9
|
+
- ``recent_tags(coder, limit=100)`` – most recently used tags + total count
|
|
9
10
|
- ``invoke_memorizer(coder, additional_context=...)`` – fire the memorizer
|
|
10
11
|
sub-agent with current context
|
|
11
12
|
"""
|
|
@@ -203,6 +204,51 @@ def search_facts(
|
|
|
203
204
|
return results
|
|
204
205
|
|
|
205
206
|
|
|
207
|
+
def recent_tags(coder, limit: int = 100) -> dict:
|
|
208
|
+
"""Return the most recently used tags plus the total tag count.
|
|
209
|
+
|
|
210
|
+
Tags are deduplicated and ordered by the recency of the most recent
|
|
211
|
+
fact they are attached to (facts sorted by ``id_fact`` descending),
|
|
212
|
+
then truncated to *limit* entries.
|
|
213
|
+
|
|
214
|
+
Args:
|
|
215
|
+
coder: The active Coder instance (used to locate the project root).
|
|
216
|
+
limit: Maximum number of recent tags to return (default 100).
|
|
217
|
+
|
|
218
|
+
Returns:
|
|
219
|
+
A dict with keys ``tags`` (list of tag strings, most recent first)
|
|
220
|
+
and ``total`` (int count of all distinct tags in the store).
|
|
221
|
+
"""
|
|
222
|
+
|
|
223
|
+
init_db(root=coder.root)
|
|
224
|
+
|
|
225
|
+
conn = _get_connection(root=coder.root)
|
|
226
|
+
cursor = conn.cursor()
|
|
227
|
+
|
|
228
|
+
# Tags ordered by the recency of the most recent fact they tag:
|
|
229
|
+
# sort facts by id descending and dedupe on the tag name.
|
|
230
|
+
cursor.execute(
|
|
231
|
+
"""
|
|
232
|
+
SELECT t.tag
|
|
233
|
+
FROM Facts f
|
|
234
|
+
JOIN FactTags ft ON ft.id_fact = f.id_fact
|
|
235
|
+
JOIN Tags t ON t.id_tag = ft.id_tag
|
|
236
|
+
GROUP BY t.tag
|
|
237
|
+
ORDER BY MAX(f.id_fact) DESC
|
|
238
|
+
LIMIT ?
|
|
239
|
+
""",
|
|
240
|
+
(limit,),
|
|
241
|
+
)
|
|
242
|
+
|
|
243
|
+
tags = [row["tag"] for row in cursor.fetchall()]
|
|
244
|
+
|
|
245
|
+
cursor.execute("SELECT COUNT(*) AS total FROM Tags")
|
|
246
|
+
|
|
247
|
+
total = cursor.fetchone()["total"]
|
|
248
|
+
|
|
249
|
+
return {"tags": tags, "total": total}
|
|
250
|
+
|
|
251
|
+
|
|
206
252
|
async def invoke_memorizer(
|
|
207
253
|
coder,
|
|
208
254
|
additional_context: str = "",
|
|
@@ -242,6 +288,14 @@ async def invoke_memorizer(
|
|
|
242
288
|
# Gather context pieces
|
|
243
289
|
parts: list[str] = []
|
|
244
290
|
|
|
291
|
+
# Recent tags (deduplicated, most recently used first) plus the total
|
|
292
|
+
# tag count — first context part so the memorizer sees active tags
|
|
293
|
+
recent = recent_tags(coder)
|
|
294
|
+
|
|
295
|
+
tag_list = ", ".join(recent["tags"]) if recent["tags"] else "(none)"
|
|
296
|
+
|
|
297
|
+
parts.append(f"## Recent Tags\n\n{tag_list}\n\n## Total Tags in DB\n\n{recent['total']}")
|
|
298
|
+
|
|
245
299
|
# Latest user message
|
|
246
300
|
last_user = getattr(coder, "last_user_message", "")
|
|
247
301
|
|
|
@@ -367,20 +367,24 @@ def unprefix_tool_call(tool_call):
|
|
|
367
367
|
|
|
368
368
|
|
|
369
369
|
def parse_tool_arguments(args_string: str) -> dict:
|
|
370
|
-
"""Parse tool-call arguments, merging glued ``{…}{} {…}`` object fragments.
|
|
370
|
+
"""Parse tool-call arguments, merging glued ``{…}{} {…}`` object fragments.
|
|
371
|
+
|
|
372
|
+
Also unwraps a single ``arguments``/``parameters``/``params`` wrapper key
|
|
373
|
+
that some models emit when mirroring the OpenAI wire format.
|
|
374
|
+
"""
|
|
371
375
|
text = (args_string or "").strip()
|
|
372
376
|
if not text:
|
|
373
377
|
return {}
|
|
374
378
|
try:
|
|
375
379
|
parsed = json.loads(text)
|
|
376
380
|
if isinstance(parsed, dict):
|
|
377
|
-
return parsed
|
|
381
|
+
return coerce_tool_structure(parsed)
|
|
378
382
|
except json.JSONDecodeError:
|
|
379
383
|
pass
|
|
380
384
|
|
|
381
385
|
parsed = try_parse_json_value(text)
|
|
382
386
|
if isinstance(parsed, dict):
|
|
383
|
-
return parsed
|
|
387
|
+
return coerce_tool_structure(parsed)
|
|
384
388
|
|
|
385
389
|
chunks = utils.split_concatenated_json(text)
|
|
386
390
|
if len(chunks) <= 1:
|
|
@@ -388,18 +392,18 @@ def parse_tool_arguments(args_string: str) -> dict:
|
|
|
388
392
|
return {}
|
|
389
393
|
lone = try_parse_json_value(chunks[0])
|
|
390
394
|
if isinstance(lone, dict):
|
|
391
|
-
return lone
|
|
395
|
+
return coerce_tool_structure(lone)
|
|
392
396
|
try:
|
|
393
397
|
json_string = json_repair.repair_json(chunks[0], ensure_ascii=False)
|
|
394
398
|
single = json.loads(json_string)
|
|
395
399
|
except json.JSONDecodeError as err:
|
|
396
400
|
return {"@error": f"Malformed JSON arguments: {err}"}
|
|
397
|
-
return single if isinstance(single, dict) else {}
|
|
401
|
+
return coerce_tool_structure(single) if isinstance(single, dict) else {}
|
|
398
402
|
|
|
399
403
|
merged = merge_glued_json_objects(chunks)
|
|
400
404
|
|
|
401
405
|
if merged is not None:
|
|
402
|
-
return merged
|
|
406
|
+
return coerce_tool_structure(merged)
|
|
403
407
|
|
|
404
408
|
return {
|
|
405
409
|
"@error": "Could not merge glued JSON objects: argument fragments are not all JSON objects"
|
|
@@ -618,3 +622,40 @@ def _parse_bracket_arguments(payload_str: str) -> dict:
|
|
|
618
622
|
arguments[key] = val_str
|
|
619
623
|
|
|
620
624
|
return arguments
|
|
625
|
+
|
|
626
|
+
|
|
627
|
+
def coerce_tool_structure(args: dict) -> dict:
|
|
628
|
+
"""Unwrap a single ``arguments``/``parameters``/``params`` wrapper key.
|
|
629
|
+
|
|
630
|
+
Some models mirror the OpenAI wire format and emit the real params nested
|
|
631
|
+
under a single top-level ``arguments`` key (as a dict or a JSON-encoded
|
|
632
|
+
string) instead of as the params dict itself. Without normalization the
|
|
633
|
+
wrapper key is forwarded verbatim to the tool, which then fails required
|
|
634
|
+
parameter validation (e.g. MCP servers reporting "missing required
|
|
635
|
+
parameter").
|
|
636
|
+
|
|
637
|
+
Only unwraps when ``args`` has exactly one key matching one of the wrapper
|
|
638
|
+
names and that value is a dict (or a JSON string that parses to a dict), so
|
|
639
|
+
tools that legitimately declare a parameter named ``arguments`` are never
|
|
640
|
+
clobbered.
|
|
641
|
+
"""
|
|
642
|
+
if not isinstance(args, dict) or len(args) != 1:
|
|
643
|
+
return args
|
|
644
|
+
|
|
645
|
+
for key in ("arguments", "parameters", "params"):
|
|
646
|
+
if key not in args:
|
|
647
|
+
continue
|
|
648
|
+
|
|
649
|
+
value = args[key]
|
|
650
|
+
if isinstance(value, str):
|
|
651
|
+
try:
|
|
652
|
+
value = json.loads(value)
|
|
653
|
+
except json.JSONDecodeError:
|
|
654
|
+
return args
|
|
655
|
+
|
|
656
|
+
if isinstance(value, dict):
|
|
657
|
+
return value
|
|
658
|
+
|
|
659
|
+
return args
|
|
660
|
+
|
|
661
|
+
return args
|
|
@@ -71,7 +71,29 @@ class SkillsManager:
|
|
|
71
71
|
if default_skill_dir not in directory_paths:
|
|
72
72
|
directory_paths = [default_skill_dir] + list(directory_paths)
|
|
73
73
|
|
|
74
|
-
|
|
74
|
+
# Resolve every path and drop exact directory duplicates.
|
|
75
|
+
resolved_paths = []
|
|
76
|
+
seen_paths = set()
|
|
77
|
+
for p in directory_paths:
|
|
78
|
+
try:
|
|
79
|
+
path = Path(p).expanduser().resolve()
|
|
80
|
+
except Exception:
|
|
81
|
+
continue
|
|
82
|
+
if path in seen_paths:
|
|
83
|
+
continue
|
|
84
|
+
seen_paths.add(path)
|
|
85
|
+
resolved_paths.append(path)
|
|
86
|
+
|
|
87
|
+
# Order paths: local project dirs first, then configured, home dirs last.
|
|
88
|
+
git_root_path = Path(git_root).expanduser().resolve() if git_root else None
|
|
89
|
+
ordered = sorted(
|
|
90
|
+
enumerate(resolved_paths),
|
|
91
|
+
key=lambda item: (
|
|
92
|
+
self._directory_priority(item[1], git_root_path),
|
|
93
|
+
item[0],
|
|
94
|
+
),
|
|
95
|
+
)
|
|
96
|
+
self.directory_paths = [path for _, path in ordered]
|
|
75
97
|
self.include_list = set(include_list) if include_list else None
|
|
76
98
|
self.exclude_list = set(exclude_list) if exclude_list else set()
|
|
77
99
|
self.git_root = Path(git_root).expanduser().resolve() if git_root else None
|
|
@@ -111,6 +133,35 @@ class SkillsManager:
|
|
|
111
133
|
|
|
112
134
|
# Save initial state from config
|
|
113
135
|
|
|
136
|
+
@staticmethod
|
|
137
|
+
def _directory_priority(path: Path, git_root: Optional[Path] = None) -> int:
|
|
138
|
+
"""Return the ordering priority of a skill directory.
|
|
139
|
+
|
|
140
|
+
Lower values are scanned first and therefore win by-name conflicts:
|
|
141
|
+
|
|
142
|
+
0 - local project directory (under the git root or working directory)
|
|
143
|
+
1 - any other configured directory
|
|
144
|
+
2 - a home directory (including the implicit ``~/.cecli/skills`` default)
|
|
145
|
+
"""
|
|
146
|
+
home = Path.home().resolve()
|
|
147
|
+
|
|
148
|
+
# Implicit default skills dir is always treated as a home dir.
|
|
149
|
+
if path == (home / ".cecli" / "skills"):
|
|
150
|
+
return 2
|
|
151
|
+
|
|
152
|
+
local_anchor = git_root if git_root is not None else Path.cwd()
|
|
153
|
+
try:
|
|
154
|
+
path.relative_to(local_anchor)
|
|
155
|
+
return 0
|
|
156
|
+
except ValueError:
|
|
157
|
+
pass
|
|
158
|
+
|
|
159
|
+
try:
|
|
160
|
+
path.relative_to(home)
|
|
161
|
+
return 2
|
|
162
|
+
except ValueError:
|
|
163
|
+
return 1
|
|
164
|
+
|
|
114
165
|
def _get_coder(self):
|
|
115
166
|
"""Return coder via weak reference, or None if collected."""
|
|
116
167
|
if self._coder_ref is not None:
|
|
@@ -176,6 +227,7 @@ class SkillsManager:
|
|
|
176
227
|
return self._skills_find_cache
|
|
177
228
|
|
|
178
229
|
skills = []
|
|
230
|
+
seen_names: set[str] = set()
|
|
179
231
|
|
|
180
232
|
for directory_path in self.directory_paths:
|
|
181
233
|
directory_path = Path(directory_path)
|
|
@@ -193,6 +245,11 @@ class SkillsManager:
|
|
|
193
245
|
metadata = self._parse_skill_metadata(skill_md_path)
|
|
194
246
|
skill_name = metadata.name
|
|
195
247
|
|
|
248
|
+
# First directory wins for duplicate skill names.
|
|
249
|
+
if skill_name in seen_names:
|
|
250
|
+
continue
|
|
251
|
+
seen_names.add(skill_name)
|
|
252
|
+
|
|
196
253
|
# Apply include/exclude filters
|
|
197
254
|
if self.include_list and skill_name not in self.include_list:
|
|
198
255
|
continue
|
|
@@ -1437,7 +1437,7 @@ async def main_async(
|
|
|
1437
1437
|
)
|
|
1438
1438
|
io.tool_output(f"Cur working dir: {Path.cwd()}")
|
|
1439
1439
|
io.tool_output(f"Git working dir: {git_root}")
|
|
1440
|
-
if args.stream and args.cache_prompts:
|
|
1440
|
+
if args.stream and args.cache_prompts and args.verbose:
|
|
1441
1441
|
io.tool_warning("Cost estimates may be inaccurate when using streaming and caching.")
|
|
1442
1442
|
if args.load:
|
|
1443
1443
|
await commands.execute("load", args.load)
|
|
@@ -64,11 +64,6 @@ class Tool(BaseTool):
|
|
|
64
64
|
try:
|
|
65
65
|
results = search_facts(coder, words=words, tags=tags)
|
|
66
66
|
|
|
67
|
-
if not results:
|
|
68
|
-
# Re-search without tags as fallback
|
|
69
|
-
if tags:
|
|
70
|
-
results = search_facts(coder, words=words, tags=None)
|
|
71
|
-
|
|
72
67
|
for r in results:
|
|
73
68
|
response.append_result(
|
|
74
69
|
{
|
|
@@ -41,7 +41,7 @@ The json file should be a dictionary with an entry for each model, as follows:
|
|
|
41
41
|
|
|
42
42
|
### Contribute model metadata
|
|
43
43
|
|
|
44
|
-
Cecli
|
|
44
|
+
Cecli ships its own bundled model metadata in `cecli/resources/model-metadata.json` (see the file in the [cecli repository](https://github.com/cecli-dev/cecli/blob/main/cecli/resources/model-metadata.json)). It is based on LiteLLM's configuration scheme [here](https://github.com/BerriAI/litellm/blob/main/model_prices_and_context_window.json).
|
|
45
45
|
|
|
46
46
|
Consider submitting a PR to that file to add missing models.
|
|
47
47
|
|
|
@@ -62,9 +62,9 @@ If the files above exist, they will be loaded in that order. Files loaded last w
|
|
|
62
62
|
|
|
63
63
|
The YAML file should be a list of dictionary objects for each model.
|
|
64
64
|
|
|
65
|
-
### Passing extra params to
|
|
65
|
+
### Passing extra params to model requests
|
|
66
66
|
|
|
67
|
-
The `extra_params` attribute of model settings is used to pass arbitrary extra parameters to
|
|
67
|
+
The `extra_params` attribute of model settings is used to pass arbitrary extra parameters to cecli's completion dispatcher when sending data to the given model. These become request parameters sent to the provider API.
|
|
68
68
|
|
|
69
69
|
For example:
|
|
70
70
|
|
|
@@ -76,7 +76,7 @@ For example:
|
|
|
76
76
|
max_tokens: 8192
|
|
77
77
|
```
|
|
78
78
|
|
|
79
|
-
You can use the special model name `cecli/extra_params` to define `extra_params` that will be passed to
|
|
79
|
+
You can use the special model name `cecli/extra_params` to define `extra_params` that will be passed to cecli's completion dispatcher for all models. Only the `extra_params` dict is used from this special model name.
|
|
80
80
|
|
|
81
81
|
For example:
|
|
82
82
|
|
|
@@ -16,12 +16,12 @@ Cecli allows you to customize and override LLM configurations to fine-tune their
|
|
|
16
16
|
|
|
17
17
|
For advanced configurations, you can organize override parameters into three logical groups: `api`, `llm`, and `agent`.
|
|
18
18
|
### 1. `api`
|
|
19
|
-
Values under `api` are
|
|
19
|
+
Values under `api` are request-level parameters that cecli passes to the provider API. This is useful for configuring provider-specific API options, temperature, or custom headers. For more details, see the [advanced model settings](../config/adv-model-settings.html) page.
|
|
20
20
|
|
|
21
21
|
**Common parameters**: `temperature`, `top_p`, `max_tokens`, `parallel_tool_calls`, `extra_body` (e.g., `thinking: true` or `reasoning_effort: "high"`).
|
|
22
22
|
|
|
23
23
|
### 2. `llm`
|
|
24
|
-
Values under `llm` are merged into the model's info dictionary (`self.info`). This allows you to override or augment model metadata and capabilities. For a comprehensive list of available model metadata fields, see
|
|
24
|
+
Values under `llm` are merged into the model's info dictionary (`self.info`). This allows you to override or augment model metadata and capabilities. For a comprehensive list of available model metadata fields, see cecli's bundled metadata in [cecli/resources/model-metadata.json](https://github.com/cecli-dev/cecli/blob/main/cecli/resources/model-metadata.json).
|
|
25
25
|
|
|
26
26
|
**Common parameters**: `supports_vision`, `supports_function_calling`, token limits, or pricing information.
|
|
27
27
|
|
|
@@ -77,6 +77,14 @@ Skills are configured through the `agent-config` parameter in the YAML configura
|
|
|
77
77
|
- **`skills_includelist`**: Array of skill names to include (whitelist)
|
|
78
78
|
- **`skills_excludelist`**: Array of skill names to exclude (blacklist)
|
|
79
79
|
|
|
80
|
+
> **Duplicate skill names**: When the same skill name is found in more than
|
|
81
|
+
> one configured directory, only one copy is loaded. Directories are scanned
|
|
82
|
+
> in priority order: local project directories (e.g. `./.cecli/skills`) first,
|
|
83
|
+
> then other configured directories in the order they are listed, with home
|
|
84
|
+
> directories (e.g. `~/skills` and the implicit `~/.cecli/skills` default)
|
|
85
|
+
> last. If no `skills_paths` are configured, the only directory searched is
|
|
86
|
+
> `~/.cecli/skills`.
|
|
87
|
+
|
|
80
88
|
Complete configuration example in YAML configuration file (`.cecli.conf.yml` or `~/.cecli.conf.yml`):
|
|
81
89
|
|
|
82
90
|
```yaml
|
|
@@ -17,7 +17,7 @@ Amazon Bedrock has added support for a new feature called [cross-region "inferen
|
|
|
17
17
|
|
|
18
18
|
If you attempt to use a `Model ID` for a model that exclusively supports the Inference Profile feature, you will receive an error message like the following:
|
|
19
19
|
|
|
20
|
-
>
|
|
20
|
+
> BadRequestError: BedrockException - b'{"message":"Invocation of model ID
|
|
21
21
|
anthropic.claude-3-7-sonnet-20250219-v1:0 with on-demand throughput isn\xe2\x80\x99t supported. Retry your request with the ID or ARN of an inference profile that contains this model."}'
|
|
22
22
|
|
|
23
23
|
## Installation and Configuration
|
|
@@ -94,22 +94,11 @@ cecli --list-models bedrock/
|
|
|
94
94
|
|
|
95
95
|
Make sure you have access to these models in your AWS account before attempting to use them with cecli.
|
|
96
96
|
|
|
97
|
-
##
|
|
98
|
-
You may need to install the `boto3` package.
|
|
97
|
+
## AWS credentials
|
|
99
98
|
|
|
100
|
-
|
|
101
|
-
# If you installed with cecli-install or `uv tool`
|
|
102
|
-
uv tool run --from cecli-dev pip install boto3
|
|
103
|
-
|
|
104
|
-
# Or with pipx...
|
|
105
|
-
pipx inject cecli-dev boto3
|
|
106
|
-
|
|
107
|
-
# Or with pip
|
|
108
|
-
pip install -U boto3
|
|
109
|
-
```
|
|
99
|
+
Cecli signs Bedrock requests itself (AWS SigV4) using the standard AWS credentials from your environment (`AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY` and optionally `AWS_SESSION_TOKEN`), so the `boto3` package is not required.
|
|
110
100
|
|
|
111
101
|
# More info
|
|
112
102
|
|
|
113
103
|
For more information on Amazon Bedrock and its models, refer to the [official AWS documentation](https://docs.aws.amazon.com/bedrock/latest/userguide/what-is-bedrock.html).
|
|
114
104
|
|
|
115
|
-
Also, see the [litellm docs on Bedrock](https://litellm.vercel.app/docs/providers/bedrock).
|
|
@@ -36,15 +36,3 @@ cecli --model gemini-exp
|
|
|
36
36
|
cecli --list-models gemini/
|
|
37
37
|
```
|
|
38
38
|
|
|
39
|
-
You may need to install the `google-generativeai` package.
|
|
40
|
-
|
|
41
|
-
```bash
|
|
42
|
-
# If you installed with cecli-install or `uv tool`
|
|
43
|
-
uv tool run --from cecli-dev pip install google-generativeai
|
|
44
|
-
|
|
45
|
-
# Or with pipx...
|
|
46
|
-
pipx inject cecli-dev google-generativeai
|
|
47
|
-
|
|
48
|
-
# Or with pip
|
|
49
|
-
pip install -U google-generativeai
|
|
50
|
-
```
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
---
|
|
2
|
+
parent: Connecting to LLMs
|
|
3
|
+
nav_order: 510
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# GitHub Copilot
|
|
7
|
+
|
|
8
|
+
Cecli can connect to GitHub Copilot’s LLMs because Copilot exposes a standard **OpenAI-style** endpoint at:
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
https://api.githubcopilot.com
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
First, install cecli:
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
uv tool install cecli-dev
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
When you specify a GitHub Copilot model on start up (e.g. `github_copilot/gpt-5-mini`), cecli will enter a GitHub auth workflow natively, wherein you will connect to your GitHub account with the provided auth code to grant the system access.
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
---
|
|
2
|
+
parent: Connecting to LLMs
|
|
3
|
+
nav_order: 800
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Other LLMs
|
|
7
|
+
|
|
8
|
+
Cecli connects directly to hundreds of models through their providers' APIs, so there is no extra model-routing package to install. You can use `cecli --model <model-name>` to use any supported model.
|
|
9
|
+
|
|
10
|
+
To explore the list of supported models you can run `cecli --list-models <model-name>` with a partial model name. If the supplied name is not an exact match for a known model, cecli will return a list of possible matching models. For example:
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
$ cecli --list-models turbo
|
|
14
|
+
|
|
15
|
+
cecli v0.29.3-dev
|
|
16
|
+
Models which match "turbo":
|
|
17
|
+
- gpt-4-turbo-preview (openai/gpt-4-turbo-preview)
|
|
18
|
+
- gpt-4-turbo (openai/gpt-4-turbo)
|
|
19
|
+
- gpt-4-turbo-2024-04-09 (openai/gpt-4-turbo-2024-04-09)
|
|
20
|
+
- gpt-3.5-turbo (openai/gpt-3.5-turbo)
|
|
21
|
+
- ...
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
See the [model warnings](warnings.html) section for information on warnings which will occur when working with models that cecli is not familiar with.
|
|
25
|
+
|
|
26
|
+
## Connecting to other providers
|
|
27
|
+
|
|
28
|
+
Cecli connects to each provider through its own request dispatcher (`cecli/helpers/llms/`): when you specify a model, cecli resolves the provider's base URL, API-key environment variable and API family (OpenAI-compatible chat, Anthropic Messages, Responses, Gemini, or Bedrock) and handles authentication and headers itself.
|
|
29
|
+
|
|
30
|
+
## Other API key variables
|
|
31
|
+
|
|
32
|
+
The authoritative list of provider base URLs and API-key environment variables is cecli's own provider configuration (`cecli/resources/providers.json`, which covers 61 providers) plus built-in defaults for the major providers. Each provider page in this section lists the variables you need to set, and `cecli --list-models <partial-name>` shows the model names cecli knows about.
|
|
33
|
+
|
|
34
|
+
Here are some of the most commonly used API key environment variables:
|
|
35
|
+
|
|
36
|
+
- OPENAI_API_KEY
|
|
37
|
+
- ANTHROPIC_API_KEY
|
|
38
|
+
- DEEPSEEK_API_KEY
|
|
39
|
+
- OPENROUTER_API_KEY
|
|
40
|
+
- GEMINI_API_KEY
|
|
41
|
+
- META_API_KEY
|
|
42
|
+
- GROQ_API_KEY
|
|
43
|
+
- XAI_API_KEY
|
|
44
|
+
- MISTRAL_API_KEY
|
|
45
|
+
- OLLAMA_API_KEY
|
|
46
|
+
- AZURE_API_KEY
|
|
@@ -67,5 +67,5 @@ If required variables are missing,
|
|
|
67
67
|
you may get errors when you attempt to chat with the model.
|
|
68
68
|
You can look in the [cecli's LLM documentation](../llms.html)
|
|
69
69
|
or the
|
|
70
|
-
|
|
70
|
+
provider pages in this section
|
|
71
71
|
to see if the required variables are listed there.
|
|
@@ -35,4 +35,3 @@ Cecli pins its dependencies and is tested to work with those specific versions.
|
|
|
35
35
|
|
|
36
36
|
In particular, be careful with the packages with pinned versions noted at the end of [cecli's requirements.in file](https://github.com/cecli-dev/cecli/blob/main/requirements/requirements.in). These versions are pinned because cecli is known not to work with the latest versions of these libraries.
|
|
37
37
|
|
|
38
|
-
Also be wary of upgrading `litellm`, as it changes versions frequently and sometimes introduces bugs or backwards incompatible changes.
|
|
@@ -45,9 +45,9 @@ Yes, you can use local LLMs with cecli. Here's a summary of the options:
|
|
|
45
45
|
|
|
46
46
|
2. OpenAI-compatible API: cecli can access local models that provide an OpenAI-compatible API.
|
|
47
47
|
|
|
48
|
-
3. Other local models: cecli
|
|
48
|
+
3. Other local models: cecli connects directly to many LLM providers, including local and OpenAI-compatible endpoints (Ollama, LM Studio, etc.).
|
|
49
49
|
|
|
50
|
-
However, it's important to note that cecli works best with more capable models. Less capable models may have difficulty properly returning
|
|
50
|
+
However, it's important to note that cecli works best with more capable models. Less capable models may have difficulty properly returning code edits, which could result in cecli not being able to edit your files and commit changes effectively.
|
|
51
51
|
|
|
52
52
|
For more detailed information on using local LLMs and connecting to various models, you might want to check out these relevant documentation pages:
|
|
53
53
|
|
|
@@ -66,8 +66,7 @@ which variables are required for the model.
|
|
|
66
66
|
If required variables are missing,
|
|
67
67
|
you may get errors when you attempt to chat with the model.
|
|
68
68
|
You can look in the [cecli's LLM documentation](../llms.html)
|
|
69
|
-
or the
|
|
70
|
-
[litellm documentation](https://docs.litellm.ai/docs/providers)
|
|
69
|
+
or the provider-specific pages (e.g. [OpenAI-compatible endpoints](../llms/openai-compat.html))
|
|
71
70
|
to see if the required variables are listed there.
|
|
72
71
|
|
|
73
72
|
## More help
|