cecli-dev 1.5.0rc15__tar.gz → 1.5.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.5.0rc15 → cecli_dev-1.5.1}/PKG-INFO +1 -1
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/_version.py +3 -3
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/agents/service.py +15 -4
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/llms/litellm_compat.py +3 -1
- cecli_dev-1.5.1/cecli/helpers/llms/runtime.py +133 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/lock_detect.py +7 -2
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/skills.py +41 -14
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/main.py +27 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/models.py +2 -2
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/tui/worker.py +18 -1
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/voice.py +91 -7
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/config/skills.md +5 -7
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/config/subagents.md +14 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli_dev.egg-info/PKG-INFO +1 -1
- cecli_dev-1.5.1/cecli_dev.egg-info/scm_version.json +8 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/basic/test_skills.py +85 -6
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/basic/test_voice.py +51 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/subagents/test_service.py +61 -0
- cecli_dev-1.5.0rc15/cecli/helpers/llms/runtime.py +0 -43
- cecli_dev-1.5.0rc15/cecli_dev.egg-info/scm_version.json +0 -8
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/.dockerignore +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/.flake8 +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/.gitattributes +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/.github/ISSUE_TEMPLATE/issue.yml +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/.github/workflows/check_pypi_version.yml +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/.github/workflows/docker-build-test.yml +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/.github/workflows/docker-release.yml +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/.github/workflows/issues.yml +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/.github/workflows/pages.yml +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/.github/workflows/pre-commit.yml +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/.github/workflows/release.yml +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/.github/workflows/ubuntu-tests.yml +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/.github/workflows/windows-tests.yml +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/.github/workflows/windows_check_pypi_version.yml +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/.gitignore +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/.pre-commit-config.yaml +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/CHANGELOG.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/CNAME +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/CONTRIBUTING.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/HISTORY.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/LICENSE.txt +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/MANIFEST.in +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/README.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/benchmark/Dockerfile +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/benchmark/README.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/benchmark/__init__.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/benchmark/benchmark.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/benchmark/benchmark_classic.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/benchmark/clone-exercism.sh +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/benchmark/cpp-test.sh +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/benchmark/docker.sh +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/benchmark/docker_build.sh +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/benchmark/install-docker-ubuntu.sh +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/benchmark/npm-test.sh +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/benchmark/over_time.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/benchmark/plot.sh +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/benchmark/plots.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/benchmark/problem_stats.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/benchmark/prompts.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/benchmark/refactor_tools.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/benchmark/rsync.sh +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/benchmark/rungrid.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/benchmark/swe-bench-lite.txt +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/benchmark/swe-bench.txt +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/benchmark/swe_bench.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/benchmark/test_benchmark.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/benchmark/variations.1.sh +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/benchmark/variations.2.sh +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/benchmark/variations.3.sh +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/benchmark/variations.4.sh +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/__init__.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/__main__.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/args.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/args_formatter.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/change_tracker.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/coders/__init__.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/coders/agent_coder.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/coders/architect_coder.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/coders/ask_coder.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/coders/base_coder.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/coders/chat_chunks.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/coders/context_coder.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/coders/copypaste_coder.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/coders/editblock_coder.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/coders/editblock_fenced_coder.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/coders/editblock_func_coder.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/coders/editor_diff_fenced_coder.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/coders/editor_editblock_coder.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/coders/editor_whole_coder.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/coders/hashline_coder.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/coders/help_coder.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/coders/patch_coder.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/coders/search_replace.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/coders/shell.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/coders/single_wholefile_func_coder.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/coders/sub_agent_coder.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/coders/udiff_coder.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/coders/udiff_simple.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/coders/wholefile_coder.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/coders/wholefile_func_coder.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/__init__.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/add.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/agent.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/agent_model.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/agent_tree.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/architect.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/ask.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/auto_memory.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/chat_mode.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/clear.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/code.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/command_prefix.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/commit.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/compact.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/context.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/context_blocks.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/context_management.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/copy.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/copy_context.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/core.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/diff.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/drop.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/editor.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/editor_model.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/exclude_skill.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/exit.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/git.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/hashline.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/help.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/history_search.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/hooks.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/hot_reload.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/import_skill.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/include_skill.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/insert_queue.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/lint.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/list_mcp.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/list_queue.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/list_sessions.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/list_skills.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/load.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/load_hook.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/load_mcp.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/load_session.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/load_skill.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/ls.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/map.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/map_refresh.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/merge.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/model.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/models.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/multiline_mode.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/paste.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/queue.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/quit.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/read_only.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/read_only_stub.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/reap_agent.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/reasoning_effort.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/remove_hook.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/remove_mcp.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/remove_memory.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/remove_queue.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/remove_skill.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/report.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/reset.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/rules.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/run.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/save.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/save_session.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/search_memory.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/settings.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/spawn_agent.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/switch_agent.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/terminal_data/linux.keytab +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/terminal_setup.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/test.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/think_tokens.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/tokens.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/undo.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/utils/__init__.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/utils/base_command.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/utils/helpers.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/utils/registry.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/utils/save_load_manager.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/voice.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/weak_model.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/web.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/commands/workspace.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/decoding.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/deprecated_args.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/diffs.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/dump.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/editor.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/exceptions.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/format_settings.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/help.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/help_pats.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/__init__.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/agents/__init__.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/agents/config.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/agents/defaults/__init__.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/agents/defaults/memorizer.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/agents/defaults/worker.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/background_commands.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/command_parser.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/command_queue.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/config_utils.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/conversation/__init__.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/conversation/base_message.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/conversation/files.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/conversation/integration.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/conversation/manager.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/conversation/service.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/conversation/tags.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/conversation/utils.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/copypaste.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/coroutines.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/crypto.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/extensions/__init__.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/extensions/skills_importer.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/file_searcher.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/file_system/__init__.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/file_system/builders.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/file_system/ignore.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/file_system/ngram_index.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/file_system/service.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/file_system/trie_index.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/grep_ast/__init__.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/grep_ast/dump.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/grep_ast/grep_ast.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/grep_ast/main.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/grep_ast/parsers.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/grep_ast/tsl.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/hashline.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/hashpos/__init__.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/hashpos/hashpos.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/hashpos/hashpos.v1.bak +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/hashpos/transformations.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/io_proxy.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/leak_detect.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/llms/__init__.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/llms/aws_sigv4.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/llms/config.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/llms/domains/__init__.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/llms/domains/bedrock.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/llms/domains/chat.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/llms/domains/gemini.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/llms/domains/messages.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/llms/domains/responses.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/llms/formatters/__init__.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/llms/formatters/reasoning.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/llms/formatters/thinking.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/llms/identifiers.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/llms/pipeline.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/llms/providers/__init__.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/llms/providers/anthropic.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/llms/providers/azure.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/llms/providers/base.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/llms/providers/bedrock.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/llms/providers/bedrock_mantle.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/llms/providers/deepseek.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/llms/providers/gemini.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/llms/providers/github_copilot.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/llms/providers/meta.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/llms/providers/mistral.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/llms/providers/openai.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/llms/providers/openrouter.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/llms/types.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/llms/utils.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/loop_detect.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/memory/__init__.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/memory/db.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/memory/utils.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/memory_control.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/model_config/__init__.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/model_config/agent.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/model_config/api.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/model_config/formatters/__init__.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/model_config/formatters/reasoning.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/model_config/formatters/thinking.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/model_config/identifiers.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/model_config/llm.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/model_config/pipeline.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/model_config/registry.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/model_config/utils.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/model_providers.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/nested.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/observations/__init__.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/observations/service.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/onboarding/__init__.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/onboarding/app.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/onboarding/providers.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/orchestration/__init__.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/orchestration/agent_proxy.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/orchestration/environment.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/orchestration/region_resolver.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/orchestration/safe_methods.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/orchestration/security.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/orchestration/service.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/orchestration/tool_proxy.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/plugin_manager.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/profiler.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/queues.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/requests.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/responses.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/server/__init__.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/server/acp/__init__.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/server/acp/bridge.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/server/acp/models.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/server/acp/protocol.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/server/signals.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/server/ws_server.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/similarity.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/threading.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/workspaces/__init__.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/workspaces/config.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/workspaces/paths.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/workspaces/subagents.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/helpers/workspaces/workspace.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/history.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/hooks/__init__.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/hooks/base.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/hooks/helpers.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/hooks/integration.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/hooks/manager.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/hooks/registry.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/hooks/service.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/hooks/types.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/http.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/interruptible_input.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/io.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/linter.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/llm.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/mcp/__init__.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/mcp/manager.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/mcp/oauth.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/mcp/server.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/mcp/utils.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/mdstream.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/onboarding.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/prompts/__init__.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/prompts/agent.yml +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/prompts/architect.yml +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/prompts/ask.yml +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/prompts/base.yml +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/prompts/context.yml +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/prompts/copypaste.yml +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/prompts/editblock.yml +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/prompts/editblock_fenced.yml +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/prompts/editblock_func.yml +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/prompts/editor_diff_fenced.yml +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/prompts/editor_editblock.yml +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/prompts/editor_whole.yml +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/prompts/hashline.yml +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/prompts/help.yml +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/prompts/patch.yml +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/prompts/single_wholefile_func.yml +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/prompts/subagent.yml +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/prompts/udiff.yml +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/prompts/udiff_simple.yml +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/prompts/utils/__init__.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/prompts/utils/registry.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/prompts/utils/system.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/prompts/wholefile.yml +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/prompts/wholefile_func.yml +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/queries/tree-sitter-language-pack/README.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/queries/tree-sitter-language-pack/arduino-tags.scm +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/queries/tree-sitter-language-pack/bash-tags.scm +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/queries/tree-sitter-language-pack/c-tags.scm +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/queries/tree-sitter-language-pack/chatito-tags.scm +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/queries/tree-sitter-language-pack/clojure-tags.scm +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/queries/tree-sitter-language-pack/commonlisp-tags.scm +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/queries/tree-sitter-language-pack/cpp-tags.scm +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/queries/tree-sitter-language-pack/csharp-tags.scm +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/queries/tree-sitter-language-pack/d-tags.scm +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/queries/tree-sitter-language-pack/dart-tags.scm +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/queries/tree-sitter-language-pack/elisp-tags.scm +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/queries/tree-sitter-language-pack/elixir-tags.scm +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/queries/tree-sitter-language-pack/elm-tags.scm +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/queries/tree-sitter-language-pack/gleam-tags.scm +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/queries/tree-sitter-language-pack/go-tags.scm +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/queries/tree-sitter-language-pack/java-tags.scm +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/queries/tree-sitter-language-pack/javascript-tags.scm +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/queries/tree-sitter-language-pack/lua-tags.scm +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/queries/tree-sitter-language-pack/matlab-tags.scm +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/queries/tree-sitter-language-pack/ocaml-tags.scm +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/queries/tree-sitter-language-pack/ocaml_interface-tags.scm +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/queries/tree-sitter-language-pack/pony-tags.scm +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/queries/tree-sitter-language-pack/properties-tags.scm +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/queries/tree-sitter-language-pack/python-tags.scm +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/queries/tree-sitter-language-pack/r-tags.scm +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/queries/tree-sitter-language-pack/racket-tags.scm +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/queries/tree-sitter-language-pack/ruby-tags.scm +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/queries/tree-sitter-language-pack/rust-tags.scm +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/queries/tree-sitter-language-pack/solidity-tags.scm +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/queries/tree-sitter-language-pack/swift-tags.scm +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/queries/tree-sitter-language-pack/udev-tags.scm +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/queries/tree-sitter-languages/README.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/queries/tree-sitter-languages/bash-tags.scm +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/queries/tree-sitter-languages/c-tags.scm +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/queries/tree-sitter-languages/c_sharp-tags.scm +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/queries/tree-sitter-languages/cpp-tags.scm +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/queries/tree-sitter-languages/dart-tags.scm +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/queries/tree-sitter-languages/elisp-tags.scm +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/queries/tree-sitter-languages/elixir-tags.scm +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/queries/tree-sitter-languages/elm-tags.scm +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/queries/tree-sitter-languages/fortran-tags.scm +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/queries/tree-sitter-languages/go-tags.scm +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/queries/tree-sitter-languages/haskell-tags.scm +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/queries/tree-sitter-languages/hcl-tags.scm +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/queries/tree-sitter-languages/java-tags.scm +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/queries/tree-sitter-languages/javascript-tags.scm +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/queries/tree-sitter-languages/julia-tags.scm +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/queries/tree-sitter-languages/kotlin-tags.scm +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/queries/tree-sitter-languages/matlab-tags.scm +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/queries/tree-sitter-languages/ocaml-tags.scm +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/queries/tree-sitter-languages/ocaml_interface-tags.scm +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/queries/tree-sitter-languages/php-tags.scm +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/queries/tree-sitter-languages/python-tags.scm +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/queries/tree-sitter-languages/ql-tags.scm +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/queries/tree-sitter-languages/ruby-tags.scm +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/queries/tree-sitter-languages/rust-tags.scm +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/queries/tree-sitter-languages/scala-tags.scm +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/queries/tree-sitter-languages/typescript-tags.scm +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/queries/tree-sitter-languages/zig-tags.scm +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/reasoning_tags.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/repo.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/repomap.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/report.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/resources/__init__.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/resources/model-metadata.ext.json +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/resources/model-metadata.json +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/resources/model-settings-condensed.yml +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/resources/model-settings.yml +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/resources/providers.json +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/run_cmd.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/scrape.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/sendchat.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/sessions.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/signals.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/special.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/tests/test_queue_commands.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/tools/__init__.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/tools/_yield.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/tools/broadcast.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/tools/command.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/tools/delegate.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/tools/edit_file.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/tools/explore_code.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/tools/git_branch.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/tools/git_diff.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/tools/git_log.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/tools/git_remote.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/tools/git_show.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/tools/git_status.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/tools/grep.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/tools/ls.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/tools/orchestrate.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/tools/read_file.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/tools/replace_facts.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/tools/resource_manager.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/tools/search_facts.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/tools/thinking.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/tools/undo_change.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/tools/update_todo_list.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/tools/utils/__init__.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/tools/utils/base_tool.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/tools/utils/helpers.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/tools/utils/output.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/tools/utils/registry.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/tools/utils/responses.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/tools/validations/__init__.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/tools/validations/validations.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/tui/__init__.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/tui/app.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/tui/io.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/tui/styles.tcss +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/tui/widgets/__init__.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/tui/widgets/completion_bar.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/tui/widgets/file_list.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/tui/widgets/footer.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/tui/widgets/input_area.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/tui/widgets/input_container.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/tui/widgets/key_hints.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/tui/widgets/output.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/tui/widgets/output_alt.bak +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/tui/widgets/selectable_log.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/tui/widgets/status_bar.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/tui/widgets/subagent_pills.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/urls.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/utils.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/versioncheck.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/waiting.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/watch.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/watch_prompts.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/_includes/blame.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/_includes/get-started.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/_includes/help-tip.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/_includes/help.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/_includes/install.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/_includes/keys.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/_includes/model-warnings.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/_includes/multi-line.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/_includes/python-m-aider.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/_includes/recording.css +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/_includes/recording.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/_includes/works-best.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/_sass/_features.scss +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/_sass/_footer.scss +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/_sass/_hero.scss +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/_sass/_info.scss +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/_sass/_layout.scss +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/_sass/_reset.scss +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/_sass/_testimonials.scss +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/_sass/_typography.scss +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/_sass/_variables.scss +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/_sass/custom/custom.scss +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/_sass/global-overrides.scss +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docmd.config.json +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/cecli-temp-logo-favicon.svg +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/config/adv-model-settings.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/config/agent-mode.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/config/api-keys.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/config/api.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/config/conf.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/config/custom-commands.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/config/custom-system-prompts.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/config/dotenv.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/config/editor.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/config/hooks.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/config/mcp.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/config/model-aliases.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/config/model-configuration.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/config/model-providers.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/config/options.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/config/persistent-memory.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/config/reasoning.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/config/retries.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/config/security.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/config/tui.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/config/workspaces.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/config.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/git.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/index.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/install/docker.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/install.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/languages.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/legal/contributor-agreement.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/legal/privacy.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/llms/anthropic.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/llms/azure.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/llms/bedrock.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/llms/cohere.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/llms/deepseek.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/llms/gemini.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/llms/github.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/llms/groq.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/llms/lm-studio.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/llms/ollama.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/llms/openai-compat.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/llms/openai.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/llms/opencode-go.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/llms/openrouter.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/llms/other.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/llms/vertex.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/llms/warnings.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/llms/xai.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/llms.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/more/analytics.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/more/edit-formats.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/more/infinite-output.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/more-info.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/repomap.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/scripting.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/troubleshooting/cecli-not-found.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/troubleshooting/edit-errors.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/troubleshooting/imports.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/troubleshooting/models-and-keys.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/troubleshooting/support.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/troubleshooting/token-limits.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/troubleshooting/warnings.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/troubleshooting.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/usage/commands.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/usage/conventions.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/usage/copypaste.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/usage/images-urls.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/usage/lint-test.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/usage/modes.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/usage/not-code.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/usage/notifications.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/usage/optional.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/usage/sessions.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/usage/tips.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/usage/voice.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/usage/watch.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/docs/usage.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/package-lock.json +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/package.json +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli/website/share/index.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli_dev.egg-info/SOURCES.txt +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli_dev.egg-info/dependency_links.txt +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli_dev.egg-info/entry_points.txt +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli_dev.egg-info/requires.txt +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli_dev.egg-info/scm_file_list.json +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/cecli_dev.egg-info/top_level.txt +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/docker/Dockerfile +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/docker/Dockerfile.local.nvidia.cuda.ubuntu +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/pyproject.toml +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/pytest.ini +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/requirements/common-constraints.txt +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/requirements/requirements-dev.in +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/requirements/requirements-dev.txt +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/requirements/requirements-help.in +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/requirements/requirements-help.txt +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/requirements/requirements-playwright.in +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/requirements/requirements-playwright.txt +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/requirements/requirements.in +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/requirements/tree-sitter.in +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/requirements.txt +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/scripts/30k-image.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/scripts/__init__.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/scripts/blame.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/scripts/clean_metadata.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/scripts/compare-message-history.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/scripts/condense_model_settings.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/scripts/cost_analyzer.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/scripts/cost_calculator.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/scripts/dl_icons.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/scripts/docmd_build.sh +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/scripts/filter-chat-mode.js +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/scripts/generate_providers.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/scripts/get_contributor_list.js +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/scripts/get_hashline.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/scripts/history_prompts.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/scripts/homepage.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/scripts/issues.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/scripts/logo_svg.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/scripts/optimize_tokens.sh +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/scripts/pip-compile.sh +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/scripts/recording_audio.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/scripts/redact-cast.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/scripts/rename_to_cecli.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/scripts/tmux_record.sh +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/scripts/tsl_pack_langs.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/scripts/update-blame.sh +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/scripts/update-docs.sh +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/scripts/update-history.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/scripts/versionbump.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/scripts/yank-old-versions.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/setup.cfg +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/shim.pyproject.toml +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/__init__.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/basic/__init__.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/basic/conftest.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/basic/test_agent_config_merge.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/basic/test_aws_credentials.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/basic/test_background_commands.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/basic/test_coder.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/basic/test_commands.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/basic/test_custom_commands.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/basic/test_deprecated.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/basic/test_editblock.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/basic/test_editor.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/basic/test_exceptions.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/basic/test_file_system_service.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/basic/test_find_or_blocks.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/basic/test_hashline.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/basic/test_hashline_closure.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/basic/test_history.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/basic/test_io.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/basic/test_linter.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/basic/test_main.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/basic/test_model_info_manager.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/basic/test_model_provider_manager.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/basic/test_models.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/basic/test_onboarding.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/basic/test_plugin_manager.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/basic/test_prompts.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/basic/test_reasoning.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/basic/test_repo.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/basic/test_repomap.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/basic/test_run_cmd.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/basic/test_sanity_check_repo.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/basic/test_scripting.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/basic/test_select_selector.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/basic/test_sendchat.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/basic/test_session_args.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/basic/test_session_crypto.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/basic/test_sessions.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/basic/test_sessions_manager.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/basic/test_special.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/basic/test_spinner.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/basic/test_ssl_verification.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/basic/test_udiff.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/basic/test_urls.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/basic/test_watch.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/basic/test_wholefile.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/coders/test_coder_switching.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/coders/test_copypaste_coder.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/coders/test_rate_limit.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/coders/test_tool_call_consolidation.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/commands/test_auto_memory.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/commands/test_compaction.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/commands/test_remove_memory.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/commands/test_search_memory.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/commands/test_switch_agent.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/commands/test_voice.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/commands/test_workspace.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/conftest.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/conversations/test_conversation_integration.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/conversations/test_conversation_system.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/fixtures/chat-history-search-replace-gold.txt +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/fixtures/chat-history.md +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/fixtures/languages/arduino/test.ino +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/fixtures/languages/bash/test.sh +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/fixtures/languages/c/test.c +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/fixtures/languages/chatito/test.chatito +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/fixtures/languages/clojure/test.clj +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/fixtures/languages/commonlisp/test.lisp +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/fixtures/languages/cpp/test.cpp +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/fixtures/languages/csharp/test.cs +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/fixtures/languages/d/test.d +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/fixtures/languages/dart/test.dart +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/fixtures/languages/elisp/test.el +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/fixtures/languages/elixir/test.ex +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/fixtures/languages/elm/test.elm +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/fixtures/languages/gleam/test.gleam +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/fixtures/languages/go/test.go +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/fixtures/languages/haskell/test.hs +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/fixtures/languages/hcl/test.tf +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/fixtures/languages/java/test.java +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/fixtures/languages/javascript/test.js +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/fixtures/languages/kotlin/test.kt +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/fixtures/languages/lua/test.lua +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/fixtures/languages/matlab/test.m +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/fixtures/languages/ocaml/test.ml +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/fixtures/languages/ocaml_interface/test.mli +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/fixtures/languages/php/test.php +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/fixtures/languages/pony/test.pony +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/fixtures/languages/properties/test.properties +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/fixtures/languages/python/test.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/fixtures/languages/ql/test.ql +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/fixtures/languages/r/test.r +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/fixtures/languages/racket/test.rkt +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/fixtures/languages/ruby/test.rb +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/fixtures/languages/rust/test.rs +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/fixtures/languages/scala/test.scala +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/fixtures/languages/solidity/test.sol +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/fixtures/languages/swift/test.swift +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/fixtures/languages/tsx/test.tsx +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/fixtures/languages/typescript/test.ts +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/fixtures/languages/udev/test.rules +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/fixtures/languages/zig/test.zig +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/fixtures/sample-code-base/sample.js +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/fixtures/sample-code-base/sample.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/fixtures/sample-code-base-repo-map.txt +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/fixtures/watch.js +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/fixtures/watch.lisp +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/fixtures/watch.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/fixtures/watch_question.js +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/help/test_help.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/helpers/observations/test_observation_service.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/helpers/server/acp/__init__.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/helpers/server/acp/test_bridge.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/helpers/server/acp/test_dispatch.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/helpers/server/acp/test_models.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/helpers/server/acp/test_protocol.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/helpers/test_llms_api_base.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/helpers/test_llms_aws_sigv4.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/helpers/test_llms_cache_control.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/helpers/test_llms_gemini_auth.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/helpers/test_llms_github_copilot_auth.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/helpers/test_llms_hyperscalers.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/helpers/test_llms_messages_stream.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/helpers/test_llms_messages_wire.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/helpers/test_llms_mistral_adapter.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/helpers/test_llms_mistral_provider.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/helpers/test_llms_providers_json.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/helpers/test_llms_reasoning_config.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/helpers/test_llms_reasoning_extract.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/helpers/test_llms_reasoning_summaries.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/helpers/test_llms_vision.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/helpers/test_loop_detect.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/helpers/test_memory_control.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/helpers/test_model_config.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/helpers/test_onboarding.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/helpers/test_orchestration.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/helpers/test_skills_importer.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/helpers/workspaces/conftest.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/helpers/workspaces/test_config.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/helpers/workspaces/test_paths.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/helpers/workspaces/test_subagents.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/helpers/workspaces/test_workspace_manager.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/hooks/__init__.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/hooks/test_base.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/hooks/test_manager.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/hooks/test_registry.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/integration/test_agent_mcp_management.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/integration/test_config_loading.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/integration/test_mcp_management.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/mcp/__init__.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/mcp/conftest.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/mcp/mock_server.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/mcp/test_keepalive_concurrency.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/mcp/test_keepalive_config.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/mcp/test_keepalive_integration.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/mcp/test_keepalive_logging.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/mcp/test_keepalive_resilience.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/mcp/test_keepalive_unit.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/mcp/test_manager.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/mcp/test_manager_retry.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/mcp/test_server_name_normalization.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/mcp/test_server_sdk_compat.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/scrape/test_playwright_disable.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/scrape/test_scrape.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/subagents/__init__.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/subagents/conftest.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/subagents/test_commands.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/subagents/test_config.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/subagents/test_delegate.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/subagents/test_finished.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/subagents/test_io_proxy.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/subagents/test_sub_agent_coder.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/test_requests.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/tools/test_command_format_output.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/tools/test_command_timeout_paging.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/tools/test_edit_file_format_output.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/tools/test_extractions.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/tools/test_get_lines.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/tools/test_git_branch.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/tools/test_git_diff.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/tools/test_grep.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/tools/test_insert_block.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/tools/test_read_range_execute.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/tools/test_registry.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/tools/test_remove_mcp_tool.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/tools/test_resource_manager_paging.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/tools/test_tool_arguments.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/tools/test_tools_load_mcp_tool.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/tools/validations.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/tui/test_app.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/tui/test_completion_bar.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/unit/conftest.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/unit/test_deep_merge.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/unit/test_edge_cases.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/unit/test_load_mcp.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/unit/test_performance.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/unit/test_queues.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/unit/test_remove_mcp.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/unit/test_retry_backoff.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/unit/test_shallow_merge.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/unit/test_signals.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/unit/test_unit_load_mcp_tool.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.1}/tests/unit/test_unit_remove_mcp_tool.py +0 -0
- {cecli_dev-1.5.0rc15 → cecli_dev-1.5.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.5.
|
|
22
|
-
__version_tuple__ = version_tuple = (1, 5,
|
|
21
|
+
__version__ = version = '1.5.1'
|
|
22
|
+
__version_tuple__ = version_tuple = (1, 5, 1)
|
|
23
23
|
|
|
24
|
-
__commit_id__ = commit_id = '
|
|
24
|
+
__commit_id__ = commit_id = 'g17d4bc7df'
|
|
@@ -617,11 +617,22 @@ class AgentService:
|
|
|
617
617
|
parent_uuid=parent_coder.uuid,
|
|
618
618
|
map_tokens=0,
|
|
619
619
|
init_metadata={"agent_config": agent_config},
|
|
620
|
-
# Sub-agents start with an empty file context; rules are inherited.
|
|
621
|
-
fnames=[],
|
|
622
|
-
read_only_fnames=[],
|
|
623
|
-
read_only_stubs_fnames=[],
|
|
624
620
|
)
|
|
621
|
+
|
|
622
|
+
# Sub-agents start with an empty file context by default; rules are
|
|
623
|
+
# inherited. When ``keep_files`` is set in the sub-agent's metadata,
|
|
624
|
+
# inherit the parent's editable and read-only files instead of
|
|
625
|
+
# resetting them.
|
|
626
|
+
keep_files = isinstance(metadata, dict) and bool(metadata.get("keep_files", False))
|
|
627
|
+
if not keep_files:
|
|
628
|
+
kwargs.update(
|
|
629
|
+
dict(
|
|
630
|
+
fnames=[],
|
|
631
|
+
read_only_fnames=[],
|
|
632
|
+
read_only_stubs_fnames=[],
|
|
633
|
+
)
|
|
634
|
+
)
|
|
635
|
+
|
|
625
636
|
if configured_root:
|
|
626
637
|
kwargs["root"] = configured_root
|
|
627
638
|
|
|
@@ -29,6 +29,8 @@ from typing import Any, Dict, List, Optional
|
|
|
29
29
|
from cecli.dump import dump # noqa: F401
|
|
30
30
|
from cecli.http import httpx
|
|
31
31
|
|
|
32
|
+
from .runtime import log_error_response
|
|
33
|
+
|
|
32
34
|
warnings.filterwarnings("ignore", category=UserWarning, module="pydantic")
|
|
33
35
|
|
|
34
36
|
SITE_URL = "https://cecli.dev"
|
|
@@ -1156,7 +1158,7 @@ class _LiteLLMFacade:
|
|
|
1156
1158
|
if language:
|
|
1157
1159
|
data["language"] = language
|
|
1158
1160
|
|
|
1159
|
-
with httpx.Client(timeout=600) as client:
|
|
1161
|
+
with httpx.Client(timeout=600, event_hooks={"response": [log_error_response]}) as client:
|
|
1160
1162
|
resp = client.post(
|
|
1161
1163
|
"https://api.openai.com/v1/audio/transcriptions",
|
|
1162
1164
|
headers=headers,
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
"""Runtime knobs for the llms package (import-light, no heavy deps).
|
|
2
|
+
|
|
3
|
+
The dispatcher and domain adapters read :data:`VERIFY_SSL` when constructing
|
|
4
|
+
httpx clients so ``--no-verify-ssl`` keeps working after the litellm swap
|
|
5
|
+
(litellm previously patched ``client_session``/``aclient_session`` globals).
|
|
6
|
+
|
|
7
|
+
``make_client`` additionally attaches a response hook that appends the body of
|
|
8
|
+
any 4xx/5xx response to :data:`ERROR_LOG_PATH` (``.cecli/logs/requests-errors.log``)
|
|
9
|
+
so failed provider requests stay diagnosable after the fact.
|
|
10
|
+
"""
|
|
11
|
+
|
|
12
|
+
from __future__ import annotations
|
|
13
|
+
|
|
14
|
+
import os
|
|
15
|
+
import ssl
|
|
16
|
+
import threading
|
|
17
|
+
import time
|
|
18
|
+
from typing import Any
|
|
19
|
+
|
|
20
|
+
from cecli.http import httpx
|
|
21
|
+
|
|
22
|
+
#: Global TLS verification flag; set False for ``--no-verify-ssl``.
|
|
23
|
+
VERIFY_SSL = True
|
|
24
|
+
|
|
25
|
+
#: Append-only destination for 4xx/5xx response bodies.
|
|
26
|
+
ERROR_LOG_PATH = ".cecli/logs/requests-errors.log"
|
|
27
|
+
|
|
28
|
+
#: Serializes appends from concurrent sync/async hooks (writes are tiny).
|
|
29
|
+
_ERROR_LOG_LOCK = threading.Lock()
|
|
30
|
+
|
|
31
|
+
#: Maximum decoded body size kept per record.
|
|
32
|
+
_MAX_LOGGED_BODY = 64 * 1024
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
def set_verify_ssl(verify: bool) -> None:
|
|
36
|
+
"""Set whether outbound httpx clients verify TLS certificates."""
|
|
37
|
+
global VERIFY_SSL
|
|
38
|
+
|
|
39
|
+
VERIFY_SSL = bool(verify)
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
def make_client(timeout: float, **kwargs: Any) -> httpx.AsyncClient:
|
|
43
|
+
"""Create an httpx AsyncClient, retrying once on the OpenSSL first-init flake.
|
|
44
|
+
|
|
45
|
+
On some platforms (observed: WSL2 + OpenSSL 3.5 + Python 3.14) the very
|
|
46
|
+
first ``ssl.create_default_context(cafile=...)`` in a fresh process can
|
|
47
|
+
fail with ``ssl.SSLError`` (``[CONF: MODULE_INITIALIZATION_ERROR]`` /
|
|
48
|
+
"unknown error (0x0)") because the OpenSSL CONF module races its lazy
|
|
49
|
+
initialization. A second attempt succeeds. Retrying keeps per-request
|
|
50
|
+
httpx clients reliable whether or not truststore has been injected.
|
|
51
|
+
|
|
52
|
+
A response hook is always attached so 4xx/5xx bodies land in
|
|
53
|
+
:data:`ERROR_LOG_PATH`; caller-supplied ``event_hooks`` are preserved.
|
|
54
|
+
"""
|
|
55
|
+
hooks = dict(kwargs.pop("event_hooks", None) or {})
|
|
56
|
+
hooks["response"] = [*hooks.get("response", []), _log_error_response]
|
|
57
|
+
|
|
58
|
+
try:
|
|
59
|
+
return httpx.AsyncClient(timeout=timeout, event_hooks=hooks, **kwargs)
|
|
60
|
+
|
|
61
|
+
except ssl.SSLError:
|
|
62
|
+
return httpx.AsyncClient(timeout=timeout, event_hooks=hooks, **kwargs)
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
def log_error_response(response: Any) -> None:
|
|
66
|
+
"""Sync httpx response hook: append 4xx/5xx bodies to :data:`ERROR_LOG_PATH`."""
|
|
67
|
+
|
|
68
|
+
if response.status_code < 400:
|
|
69
|
+
return
|
|
70
|
+
|
|
71
|
+
try:
|
|
72
|
+
response.read()
|
|
73
|
+
body = response.text
|
|
74
|
+
|
|
75
|
+
except Exception:
|
|
76
|
+
body = "<body unavailable>"
|
|
77
|
+
|
|
78
|
+
_append_error_record(response, body)
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
async def _log_error_response(response: Any) -> None:
|
|
82
|
+
"""Async httpx response hook: append 4xx/5xx bodies to :data:`ERROR_LOG_PATH`.
|
|
83
|
+
|
|
84
|
+
Reading the body here also makes it available to the caller's later
|
|
85
|
+
``raise_for_status()``/error handling; streaming error responses are
|
|
86
|
+
otherwise left unread.
|
|
87
|
+
"""
|
|
88
|
+
|
|
89
|
+
if response.status_code < 400:
|
|
90
|
+
return
|
|
91
|
+
|
|
92
|
+
try:
|
|
93
|
+
await response.aread()
|
|
94
|
+
body = response.text
|
|
95
|
+
|
|
96
|
+
except Exception:
|
|
97
|
+
body = "<body unavailable>"
|
|
98
|
+
|
|
99
|
+
_append_error_record(response, body)
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
def _append_error_record(response: Any, body: str) -> None:
|
|
103
|
+
"""Append one error record; logging failures never reach the request path."""
|
|
104
|
+
|
|
105
|
+
request = response.request
|
|
106
|
+
body = body or ""
|
|
107
|
+
|
|
108
|
+
if len(body) > _MAX_LOGGED_BODY:
|
|
109
|
+
body = f"{body[:_MAX_LOGGED_BODY]}\n<truncated>"
|
|
110
|
+
|
|
111
|
+
record = (
|
|
112
|
+
f"{time.strftime('%Y-%m-%d %H:%M:%S')} "
|
|
113
|
+
f"{getattr(request, 'method', '?')} {getattr(request, 'url', '?')} -> "
|
|
114
|
+
f"{response.status_code}\n{body}\n{'-' * 80}\n"
|
|
115
|
+
)
|
|
116
|
+
|
|
117
|
+
try:
|
|
118
|
+
os.makedirs(os.path.dirname(ERROR_LOG_PATH), exist_ok=True)
|
|
119
|
+
|
|
120
|
+
with _ERROR_LOG_LOCK, open(ERROR_LOG_PATH, "a", encoding="utf-8") as handle:
|
|
121
|
+
handle.write(record)
|
|
122
|
+
|
|
123
|
+
except Exception:
|
|
124
|
+
pass
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
__all__ = [
|
|
128
|
+
"ERROR_LOG_PATH",
|
|
129
|
+
"VERIFY_SSL",
|
|
130
|
+
"log_error_response",
|
|
131
|
+
"make_client",
|
|
132
|
+
"set_verify_ssl",
|
|
133
|
+
]
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import logging
|
|
2
|
+
import os
|
|
2
3
|
import sys
|
|
3
4
|
import threading
|
|
4
5
|
import time
|
|
@@ -11,10 +12,14 @@ logging.basicConfig(level=logging.INFO)
|
|
|
11
12
|
logging.getLogger("asyncio").setLevel(logging.DEBUG)
|
|
12
13
|
|
|
13
14
|
|
|
14
|
-
def dump_stacks_to_file(filename="
|
|
15
|
+
def dump_stacks_to_file(filename=".cecli/logs/threads.log", interval=5, max_prints=10):
|
|
15
16
|
"""Periodically writes stack traces to a file, resetting it after max_prints."""
|
|
16
17
|
print_count = 0
|
|
17
18
|
|
|
19
|
+
log_dir = os.path.dirname(filename)
|
|
20
|
+
if log_dir:
|
|
21
|
+
os.makedirs(log_dir, exist_ok=True)
|
|
22
|
+
|
|
18
23
|
while True:
|
|
19
24
|
time.sleep(interval)
|
|
20
25
|
try:
|
|
@@ -50,7 +55,7 @@ def dump_stacks_to_file(filename="hang_dump.log", interval=5, max_prints=10):
|
|
|
50
55
|
# Start the monitor in a background daemon thread
|
|
51
56
|
monitor_thread = threading.Thread(
|
|
52
57
|
target=dump_stacks_to_file,
|
|
53
|
-
args=("
|
|
58
|
+
args=(".cecli/logs/threads.log", 5, 10), # Clears every 10 prints
|
|
54
59
|
daemon=True,
|
|
55
60
|
)
|
|
56
61
|
monitor_thread.start()
|
|
@@ -66,23 +66,29 @@ class SkillsManager:
|
|
|
66
66
|
root: Optional base root directory for relative path resolution
|
|
67
67
|
coder: Optional reference to the coder instance (weak reference)
|
|
68
68
|
"""
|
|
69
|
-
# Always include the default skills
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
69
|
+
# Always include the default skills directories in the user's home:
|
|
70
|
+
# the cecli-specific directory plus the `.agents` standard directory.
|
|
71
|
+
default_skill_dirs = [
|
|
72
|
+
str(Path.home() / ".cecli" / "skills"),
|
|
73
|
+
str(Path.home() / ".agents" / "skills"),
|
|
74
|
+
]
|
|
75
|
+
for default_skill_dir in reversed(default_skill_dirs):
|
|
76
|
+
if default_skill_dir not in directory_paths:
|
|
77
|
+
directory_paths = [default_skill_dir] + list(directory_paths)
|
|
73
78
|
|
|
74
79
|
# Local path resolution base: use root so sub-agents with an overridden
|
|
75
80
|
# local root still resolve project skills relative to the primary
|
|
76
81
|
# workspace (instead of the working directory).
|
|
77
82
|
local_anchor = Path(root).expanduser().resolve() if root else Path.cwd()
|
|
78
83
|
|
|
79
|
-
# Also include the local default skills
|
|
80
|
-
# so project-scoped skills can live in {root}/.cecli/skills
|
|
81
|
-
#
|
|
84
|
+
# Also include the local default skills directories under the coder root
|
|
85
|
+
# so project-scoped skills can live in {root}/.cecli/skills or
|
|
86
|
+
# {root}/.agents/skills alongside the global home defaults.
|
|
82
87
|
if root:
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
directory_paths
|
|
88
|
+
for local_skill_subdir in (".cecli", ".agents"):
|
|
89
|
+
local_default_skill_dir = str(local_anchor / local_skill_subdir / "skills")
|
|
90
|
+
if local_default_skill_dir not in directory_paths:
|
|
91
|
+
directory_paths.append(local_default_skill_dir)
|
|
86
92
|
|
|
87
93
|
# Resolve every path relative to local_anchor and drop exact duplicates.
|
|
88
94
|
resolved_paths = []
|
|
@@ -101,11 +107,14 @@ class SkillsManager:
|
|
|
101
107
|
seen_paths.add(path)
|
|
102
108
|
resolved_paths.append(path)
|
|
103
109
|
|
|
104
|
-
# Order paths: local project dirs
|
|
110
|
+
# Order paths: local project dirs before home dirs, and within the same
|
|
111
|
+
# locality cecli's own `.cecli/skills` directories before the
|
|
112
|
+
# `.agents/skills` standard directories.
|
|
105
113
|
ordered = sorted(
|
|
106
114
|
enumerate(resolved_paths),
|
|
107
115
|
key=lambda item: (
|
|
108
116
|
self._directory_priority(item[1], local_anchor),
|
|
117
|
+
self._directory_source_rank(item[1]),
|
|
109
118
|
item[0],
|
|
110
119
|
),
|
|
111
120
|
)
|
|
@@ -157,15 +166,17 @@ class SkillsManager:
|
|
|
157
166
|
|
|
158
167
|
0 - local project directory (under the root or working directory)
|
|
159
168
|
1 - any other configured directory
|
|
160
|
-
2 - a home directory (including the implicit ``~/.cecli/skills``
|
|
169
|
+
2 - a home directory (including the implicit ``~/.cecli/skills`` and
|
|
170
|
+
``~/.agents/skills`` defaults)
|
|
161
171
|
"""
|
|
162
172
|
home = Path.home().resolve()
|
|
163
173
|
|
|
164
|
-
# Implicit default skills
|
|
165
|
-
if path
|
|
174
|
+
# Implicit default skills dirs are always treated as home dirs.
|
|
175
|
+
if path in (home / ".cecli" / "skills", home / ".agents" / "skills"):
|
|
166
176
|
return 2
|
|
167
177
|
|
|
168
178
|
local_anchor = root if root is not None else Path.cwd()
|
|
179
|
+
|
|
169
180
|
try:
|
|
170
181
|
path.relative_to(local_anchor)
|
|
171
182
|
return 0
|
|
@@ -178,6 +189,22 @@ class SkillsManager:
|
|
|
178
189
|
except ValueError:
|
|
179
190
|
return 1
|
|
180
191
|
|
|
192
|
+
@staticmethod
|
|
193
|
+
def _directory_source_rank(path: Path) -> int:
|
|
194
|
+
"""Rank a skill directory by the standard it belongs to.
|
|
195
|
+
|
|
196
|
+
Lower values are scanned first and therefore win by-name conflicts, but
|
|
197
|
+
this only breaks ties between directories in the same locality (see
|
|
198
|
+
``_directory_priority``):
|
|
199
|
+
|
|
200
|
+
0 - cecli's own ``.cecli/skills`` directories and other directories
|
|
201
|
+
1 - the ``.agents/skills`` standard directories
|
|
202
|
+
"""
|
|
203
|
+
if path.name == "skills" and path.parent.name == ".agents":
|
|
204
|
+
return 1
|
|
205
|
+
|
|
206
|
+
return 0
|
|
207
|
+
|
|
181
208
|
def _get_coder(self):
|
|
182
209
|
"""Return coder via weak reference, or None if collected."""
|
|
183
210
|
if self._coder_ref is not None:
|
|
@@ -73,6 +73,28 @@ elif sys.platform == "darwin":
|
|
|
73
73
|
from .dump import dump # noqa
|
|
74
74
|
|
|
75
75
|
|
|
76
|
+
def attach_debug_thread_monitor(argv=None):
|
|
77
|
+
"""Start the thread/stack monitor early when debug logging is requested.
|
|
78
|
+
|
|
79
|
+
The full argument parser only runs inside main_async(), so the debug flag is
|
|
80
|
+
resolved late. The monitor must be running before the event loop starts to
|
|
81
|
+
observe startup, so we detect the usual sources here instead: an explicit
|
|
82
|
+
CECLI_DEBUG_THREAD_LOG override, the CECLI_DEBUG env var, or a --debug flag
|
|
83
|
+
in argv. A debug value supplied only by a config file is not known this
|
|
84
|
+
early and is handled once args are parsed.
|
|
85
|
+
"""
|
|
86
|
+
env_override = os.getenv("CECLI_DEBUG_THREAD_LOG", "").lower() in ("1", "true", "yes")
|
|
87
|
+
env_debug = os.getenv("CECLI_DEBUG", "").lower() in ("1", "true", "yes")
|
|
88
|
+
|
|
89
|
+
if argv is None:
|
|
90
|
+
argv = sys.argv[1:]
|
|
91
|
+
|
|
92
|
+
if not (env_override or env_debug or "--debug" in argv):
|
|
93
|
+
return
|
|
94
|
+
|
|
95
|
+
import cecli.helpers.lock_detect # noqa
|
|
96
|
+
|
|
97
|
+
|
|
76
98
|
def convert_yaml_to_json_string(value, config_file_value=None):
|
|
77
99
|
"""
|
|
78
100
|
Convert YAML dict/list values to JSON strings for compatibility.
|
|
@@ -555,6 +577,8 @@ def custom_tracer(frame, event, arg):
|
|
|
555
577
|
def main(argv=None, input=None, output=None, force_git_root=None, return_coder=False):
|
|
556
578
|
from cecli.signals import ReloadProgramSignal
|
|
557
579
|
|
|
580
|
+
attach_debug_thread_monitor(argv)
|
|
581
|
+
|
|
558
582
|
# Tracks the coder instance from a ReloadProgramSignal so the new
|
|
559
583
|
# main_async() can pass it as from_coder to Coder.create(), preserving
|
|
560
584
|
# UUID, edit_format, and other state across the reload cycle.
|
|
@@ -786,6 +810,9 @@ async def main_async(
|
|
|
786
810
|
os.makedirs(".cecli/logs/", exist_ok=True)
|
|
787
811
|
log_file = open(".cecli/logs/debug.log", "w", buffering=1)
|
|
788
812
|
sys.settrace(custom_tracer)
|
|
813
|
+
# Ensure the thread/stack monitor is running even when debug was enabled
|
|
814
|
+
# from a config file rather than the CLI/env (main() attaches it early).
|
|
815
|
+
import cecli.helpers.lock_detect # noqa
|
|
789
816
|
if args.shell_completions:
|
|
790
817
|
parser.prog = "cecli"
|
|
791
818
|
print(shtab.complete(parser, shell=args.shell_completions))
|
|
@@ -1515,7 +1515,7 @@ class Model(ModelSettings):
|
|
|
1515
1515
|
should_retry = False
|
|
1516
1516
|
|
|
1517
1517
|
if not should_retry:
|
|
1518
|
-
print(f"
|
|
1518
|
+
print(f"API Error: {str(err)}")
|
|
1519
1519
|
if ex_info.description:
|
|
1520
1520
|
print(ex_info.description)
|
|
1521
1521
|
if stream:
|
|
@@ -1524,7 +1524,7 @@ class Model(ModelSettings):
|
|
|
1524
1524
|
return hash_object, self.model_error_response()
|
|
1525
1525
|
|
|
1526
1526
|
print(f"Retrying in {retry_delay:.1f} seconds...")
|
|
1527
|
-
print(f"
|
|
1527
|
+
print(f"API Error: {str(err)}")
|
|
1528
1528
|
if interrupt_event:
|
|
1529
1529
|
_res, interrupted = await coroutines.interruptible(
|
|
1530
1530
|
asyncio.sleep(retry_delay), interrupt_event
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import asyncio
|
|
4
4
|
import logging
|
|
5
|
+
import sys
|
|
5
6
|
import threading
|
|
6
7
|
import warnings
|
|
7
8
|
from typing import Optional
|
|
@@ -45,7 +46,7 @@ class CoderWorker:
|
|
|
45
46
|
|
|
46
47
|
def _run_thread(self):
|
|
47
48
|
"""Thread entry point - creates event loop and runs coder."""
|
|
48
|
-
self.loop =
|
|
49
|
+
self.loop = self._create_event_loop()
|
|
49
50
|
asyncio.set_event_loop(self.loop)
|
|
50
51
|
self.loop.set_exception_handler(self.worker_loop_exception_handler)
|
|
51
52
|
|
|
@@ -283,3 +284,19 @@ class CoderWorker:
|
|
|
283
284
|
# Wait for thread to finish
|
|
284
285
|
if self.thread and self.thread.is_alive():
|
|
285
286
|
self.thread.join(timeout=2.0)
|
|
287
|
+
|
|
288
|
+
def _create_event_loop(self):
|
|
289
|
+
"""Create the event loop used by the coder worker thread.
|
|
290
|
+
|
|
291
|
+
On Windows, use a ProactorEventLoop so MCP stdio servers can spawn real
|
|
292
|
+
asynchronous subprocesses. The process-wide policy forces a
|
|
293
|
+
SelectorEventLoop (required by prompt_toolkit on the main loop), but a
|
|
294
|
+
SelectorEventLoop cannot create subprocesses, so MCP falls back to
|
|
295
|
+
blocking ``Popen.wait()`` calls on the AnyIO thread pool. Those waits are
|
|
296
|
+
uninterruptible and can hang forever, wedging MCP teardown and leaving the
|
|
297
|
+
coder stuck mid-processing.
|
|
298
|
+
"""
|
|
299
|
+
if sys.platform == "win32" and hasattr(asyncio, "ProactorEventLoop"):
|
|
300
|
+
return asyncio.ProactorEventLoop()
|
|
301
|
+
|
|
302
|
+
return asyncio.new_event_loop()
|
|
@@ -268,9 +268,8 @@ def _run_record_process(
|
|
|
268
268
|
temp_path = tmp_file.name
|
|
269
269
|
|
|
270
270
|
try:
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
):
|
|
271
|
+
stream = _open_input_stream(callback, sample_rate, device_id)
|
|
272
|
+
with stream:
|
|
274
273
|
_status(status_queue, f"\n⬤ recording: {stop_binding or 'Enter'} to stop")
|
|
275
274
|
_wait_for_stop(stop_queue)
|
|
276
275
|
|
|
@@ -329,7 +328,6 @@ def _record_and_stream(
|
|
|
329
328
|
"""
|
|
330
329
|
import threading
|
|
331
330
|
|
|
332
|
-
import sounddevice as sd
|
|
333
331
|
from moonshine_voice.transcriber import LineCompleted, LineStarted, LineTextChanged
|
|
334
332
|
|
|
335
333
|
transcriber = _build_transcriber(language, status_queue)
|
|
@@ -397,9 +395,8 @@ def _record_and_stream(
|
|
|
397
395
|
feed_thread.start()
|
|
398
396
|
|
|
399
397
|
try:
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
):
|
|
398
|
+
stream = _open_input_stream(callback, sample_rate, device_id)
|
|
399
|
+
with stream:
|
|
403
400
|
_status(status_queue, f"\n⬤ recording: {stop_binding or 'Enter'} to stop")
|
|
404
401
|
_wait_for_stop(stop_queue)
|
|
405
402
|
finally:
|
|
@@ -559,6 +556,93 @@ def _status(status_queue, message):
|
|
|
559
556
|
print(message)
|
|
560
557
|
|
|
561
558
|
|
|
559
|
+
def _open_input_stream(callback, sample_rate, device_id=None):
|
|
560
|
+
"""Open and start an input stream, retrying devices that fail to start.
|
|
561
|
+
|
|
562
|
+
PortAudio can transiently time out (``paTimedOut``) when starting a stream,
|
|
563
|
+
as happens with WSL and PipeWire's ``pulse`` device. Each candidate is
|
|
564
|
+
started eagerly so a start failure is caught and the next compatible device
|
|
565
|
+
or sample rate is tried instead of aborting the recording. Returns a started
|
|
566
|
+
``sounddevice.InputStream`` for callers to use as a context manager; raises
|
|
567
|
+
``SoundDeviceError`` when nothing starts.
|
|
568
|
+
"""
|
|
569
|
+
import sounddevice as sd
|
|
570
|
+
|
|
571
|
+
last_error = None
|
|
572
|
+
|
|
573
|
+
for dev, rate in _input_device_candidates(sample_rate, device_id):
|
|
574
|
+
stream = None
|
|
575
|
+
|
|
576
|
+
try:
|
|
577
|
+
stream = sd.InputStream(samplerate=rate, channels=1, callback=callback, device=dev)
|
|
578
|
+
stream.start()
|
|
579
|
+
except Exception as exc:
|
|
580
|
+
last_error = exc
|
|
581
|
+
|
|
582
|
+
if stream is not None:
|
|
583
|
+
try:
|
|
584
|
+
stream.close()
|
|
585
|
+
except Exception:
|
|
586
|
+
pass
|
|
587
|
+
|
|
588
|
+
continue
|
|
589
|
+
|
|
590
|
+
return stream
|
|
591
|
+
|
|
592
|
+
raise SoundDeviceError(_input_device_error_message(last_error))
|
|
593
|
+
|
|
594
|
+
|
|
595
|
+
def _input_device_candidates(sample_rate, device_id=None):
|
|
596
|
+
"""Yield ``(device, sample_rate)`` candidates for the input stream, best first."""
|
|
597
|
+
import sounddevice as sd
|
|
598
|
+
|
|
599
|
+
for rate in _sample_rates(sample_rate):
|
|
600
|
+
yield (device_id, rate)
|
|
601
|
+
|
|
602
|
+
try:
|
|
603
|
+
devices = sd.query_devices()
|
|
604
|
+
except Exception:
|
|
605
|
+
return
|
|
606
|
+
|
|
607
|
+
if not isinstance(devices, list):
|
|
608
|
+
return
|
|
609
|
+
|
|
610
|
+
for dev, entry in enumerate(devices):
|
|
611
|
+
if not isinstance(entry, dict) or entry.get("max_input_channels", 0) <= 0:
|
|
612
|
+
continue
|
|
613
|
+
|
|
614
|
+
if dev == device_id:
|
|
615
|
+
continue
|
|
616
|
+
|
|
617
|
+
for rate in _sample_rates(entry.get("default_samplerate") or sample_rate):
|
|
618
|
+
yield (dev, rate)
|
|
619
|
+
|
|
620
|
+
|
|
621
|
+
def _sample_rates(sample_rate):
|
|
622
|
+
"""Return the sample rates to try for a device, most-preferred first."""
|
|
623
|
+
rates = []
|
|
624
|
+
|
|
625
|
+
for rate in (sample_rate, 44100, 48000, 16000):
|
|
626
|
+
if rate and rate not in rates:
|
|
627
|
+
rates.append(rate)
|
|
628
|
+
|
|
629
|
+
return rates
|
|
630
|
+
|
|
631
|
+
|
|
632
|
+
def _input_device_error_message(err):
|
|
633
|
+
"""Return an actionable message when no input device can be started."""
|
|
634
|
+
reason = f" ({err})" if err else ""
|
|
635
|
+
|
|
636
|
+
return (
|
|
637
|
+
"No microphone input device could be started"
|
|
638
|
+
+ reason
|
|
639
|
+
+ ". Check that your mic is the default input device (Windows: Settings > "
|
|
640
|
+
"System > Sound > Input) and that Windows grants WSLg microphone access "
|
|
641
|
+
"(Settings > Privacy & security > Microphone). In WSL, confirm the mic is "
|
|
642
|
+
"bridged first, e.g. `PULSE_SERVER=unix:/mnt/wslg/PulseServer parec -d RDPSource --channels=1`."
|
|
643
|
+
)
|
|
644
|
+
|
|
645
|
+
|
|
562
646
|
def _download_model_from_hf(language, status_queue=None):
|
|
563
647
|
"""Download the native Moonshine model for ``language`` from Hugging Face.
|
|
564
648
|
|
|
@@ -77,13 +77,11 @@ 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
|
-
>
|
|
82
|
-
>
|
|
83
|
-
>
|
|
84
|
-
> directories (
|
|
85
|
-
> last. If no `skills_paths` are configured, the only directory searched is
|
|
86
|
-
> `~/.cecli/skills`.
|
|
80
|
+
> **Duplicate skill names**: When the same skill name is found in more than one configured directory, only one copy is loaded. Directories are scanned in priority order: local project directories (e.g. `./.cecli/skills` and `./.agents/skills`) first, then other configured directories in the order they are listed, with home directories (e.g. `~/skills`, `~/.cecli/skills`,and `~/.agents/skills`) last. If no `skills_paths` are configured, the directories searched are `~/.cecli/skills` and `~/.agents/skills`.
|
|
81
|
+
>
|
|
82
|
+
> Within the same locality, cecli's own `.cecli/skills` directories are scanned before the `.agents/skills` standard directories; local directories always take priority over global ones.
|
|
83
|
+
>
|
|
84
|
+
> Skills placed in the standard `.agents/skills` directories (`~/.agents/skills` globally or `{root}/.agents/skills` per project) are discovered automatically alongside cecli's own `.cecli/skills` directories.
|
|
87
85
|
|
|
88
86
|
Complete configuration example in YAML configuration file (`.cecli.conf.yml` or `~/.cecli.conf.yml`):
|
|
89
87
|
|
|
@@ -45,10 +45,24 @@ and suggestions for improvement.
|
|
|
45
45
|
| `hooks` | No | Per-agent hooks configuration (see [Hooks](hooks.html) for syntax) |
|
|
46
46
|
| `agent-config` | No | Override `agent-config` property of cecli configuration with custom values for sub agent |
|
|
47
47
|
| `auto_reap` | No | Controls whether this sub-agent is automatically reaped when the limit is reached. Defaults to `true` if omitted |
|
|
48
|
+
| `keep_files` | No | When `true`, the sub-agent inherits the parent's editable and read-only files instead of starting with an empty file context. Defaults to `false` if omitted |
|
|
48
49
|
|
|
49
50
|
#### System Prompt
|
|
50
51
|
|
|
51
52
|
Any content after the closing `---` of the front matter becomes the sub-agent's system prompt. This replaces the default main system prompt for that agent. You can use this to define the sub-agent's role, behavior, and constraints.
|
|
53
|
+
#### File Inheritance
|
|
54
|
+
|
|
55
|
+
By default, sub-agents start with an empty file context — only rules files are inherited from the parent. Set `keep_files: true` in the front matter to also inherit the parent's editable files, read-only files, and read-only stubs:
|
|
56
|
+
|
|
57
|
+
```markdown
|
|
58
|
+
---
|
|
59
|
+
name: reviewer
|
|
60
|
+
keep_files: true
|
|
61
|
+
---
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
This is useful for review or testing sub-agents that need the same working set of files as the primary agent.
|
|
65
|
+
|
|
52
66
|
|
|
53
67
|
### Configuration File
|
|
54
68
|
|