cecli-dev 1.6.2rc5__tar.gz → 1.7.0__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.6.2rc5 → cecli_dev-1.7.0}/PKG-INFO +1 -1
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/_version.py +3 -3
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/args.py +12 -1
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/args_formatter.py +1 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/coders/base_coder.py +3 -5
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/add.py +2 -2
- cecli_dev-1.7.0/cecli/commands/paste.py +206 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/config_utils.py +13 -2
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/llms/domains/chat.py +15 -2
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/llms/litellm_compat.py +15 -5
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/sessions/manager.py +13 -2
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/sessions/payload.py +17 -2
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/sessions/subagents.py +52 -0
- cecli_dev-1.7.0/cecli/helpers/system_one/__init__.py +86 -0
- cecli_dev-1.7.0/cecli/helpers/system_one/api.py +186 -0
- cecli_dev-1.7.0/cecli/helpers/system_one/client.py +162 -0
- cecli_dev-1.7.0/cecli/helpers/system_one/config.py +217 -0
- cecli_dev-1.7.0/cecli/helpers/system_one/integrations.py +155 -0
- cecli_dev-1.7.0/cecli/helpers/system_one/types.py +256 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/hooks/helpers.py +56 -1
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/main.py +20 -1
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/models.py +60 -20
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/tools/grep.py +4 -3
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/tools/ls.py +3 -3
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/tools/resource_manager.py +4 -10
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/tui/app.py +13 -3
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/tui/widgets/completion_bar.py +8 -2
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/utils.py +20 -7
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/config/conf.md +1 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/config/hooks.md +138 -3
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/config/retries.md +4 -2
- cecli_dev-1.7.0/cecli/website/docs/config/system-one.md +180 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli_dev.egg-info/PKG-INFO +1 -1
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli_dev.egg-info/SOURCES.txt +9 -1
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli_dev.egg-info/scm_file_list.json +9 -1
- cecli_dev-1.7.0/cecli_dev.egg-info/scm_version.json +8 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/basic/test_agent_config_merge.py +1 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/basic/test_models.py +18 -0
- cecli_dev-1.7.0/tests/basic/test_retry_config.py +65 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/basic/test_sessions_manager.py +126 -0
- cecli_dev-1.7.0/tests/basic/test_system_one.py +809 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/tui/test_completion_bar.py +72 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/unit/test_deep_merge.py +12 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/unit/test_retry_backoff.py +154 -0
- cecli_dev-1.6.2rc5/cecli/commands/paste.py +0 -95
- cecli_dev-1.6.2rc5/cecli/website/docs/usage/tips.md +0 -80
- cecli_dev-1.6.2rc5/cecli_dev.egg-info/scm_version.json +0 -8
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/.dockerignore +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/.flake8 +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/.gitattributes +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/.github/ISSUE_TEMPLATE/issue.yml +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/.github/workflows/check_pypi_version.yml +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/.github/workflows/docker-build-test.yml +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/.github/workflows/docker-release.yml +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/.github/workflows/issues.yml +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/.github/workflows/pages.yml +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/.github/workflows/pre-commit.yml +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/.github/workflows/release.yml +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/.github/workflows/ubuntu-tests.yml +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/.github/workflows/windows-tests.yml +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/.github/workflows/windows_check_pypi_version.yml +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/.gitignore +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/.pre-commit-config.yaml +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/CHANGELOG.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/CNAME +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/CONTRIBUTING.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/HISTORY.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/LICENSE.txt +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/MANIFEST.in +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/README.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/benchmark/Dockerfile +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/benchmark/README.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/benchmark/__init__.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/benchmark/benchmark.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/benchmark/benchmark_classic.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/benchmark/clone-exercism.sh +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/benchmark/cpp-test.sh +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/benchmark/docker.sh +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/benchmark/docker_build.sh +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/benchmark/install-docker-ubuntu.sh +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/benchmark/npm-test.sh +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/benchmark/over_time.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/benchmark/plot.sh +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/benchmark/plots.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/benchmark/problem_stats.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/benchmark/prompts.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/benchmark/refactor_tools.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/benchmark/rsync.sh +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/benchmark/rungrid.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/benchmark/swe-bench-lite.txt +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/benchmark/swe-bench.txt +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/benchmark/swe_bench.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/benchmark/test_benchmark.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/benchmark/variations.1.sh +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/benchmark/variations.2.sh +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/benchmark/variations.3.sh +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/benchmark/variations.4.sh +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/__init__.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/__main__.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/change_tracker.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/coders/__init__.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/coders/agent_coder.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/coders/architect_coder.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/coders/ask_coder.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/coders/chat_chunks.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/coders/context_coder.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/coders/copypaste_coder.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/coders/editblock_coder.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/coders/editblock_fenced_coder.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/coders/editblock_func_coder.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/coders/editor_diff_fenced_coder.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/coders/editor_editblock_coder.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/coders/editor_whole_coder.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/coders/hashline_coder.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/coders/help_coder.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/coders/patch_coder.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/coders/search_replace.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/coders/shell.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/coders/single_wholefile_func_coder.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/coders/sub_agent_coder.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/coders/udiff_coder.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/coders/udiff_simple.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/coders/wholefile_coder.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/coders/wholefile_func_coder.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/__init__.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/agent.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/agent_model.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/agent_tree.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/architect.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/ask.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/auto_memory.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/chat_mode.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/clear.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/code.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/command_prefix.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/commit.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/compact.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/context.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/context_blocks.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/context_management.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/copy.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/copy_context.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/core.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/diff.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/drop.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/editor.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/editor_model.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/exclude_skill.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/exit.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/git.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/hashline.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/help.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/history_search.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/hooks.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/hot_reload.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/import_skill.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/include_skill.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/insert_queue.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/lint.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/list_mcp.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/list_queue.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/list_sessions.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/list_skills.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/load.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/load_hook.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/load_mcp.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/load_session.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/load_skill.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/ls.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/map.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/map_refresh.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/merge.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/model.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/models.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/multiline_mode.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/queue.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/quit.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/read_only.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/read_only_stub.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/reap_agent.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/reasoning_effort.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/remove_hook.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/remove_mcp.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/remove_memory.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/remove_queue.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/remove_skill.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/report.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/reset.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/rules.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/run.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/save.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/save_session.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/search_memory.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/settings.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/spawn_agent.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/switch_agent.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/terminal_data/linux.keytab +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/terminal_setup.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/test.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/think_tokens.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/tokens.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/undo.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/utils/__init__.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/utils/base_command.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/utils/helpers.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/utils/registry.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/utils/save_load_manager.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/voice.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/weak_model.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/web.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/commands/workspace.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/decoding.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/deprecated_args.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/diffs.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/dump.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/editor.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/exceptions.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/format_settings.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/help.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/help_pats.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/__init__.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/agents/__init__.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/agents/config.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/agents/defaults/__init__.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/agents/defaults/memorizer.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/agents/defaults/worker.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/agents/service.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/background_commands.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/command_parser.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/command_queue.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/conversation/__init__.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/conversation/base_message.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/conversation/files.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/conversation/integration.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/conversation/manager.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/conversation/service.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/conversation/tags.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/conversation/utils.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/copypaste.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/coroutines.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/crypto.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/extensions/__init__.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/extensions/skills_importer.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/file_searcher.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/file_system/__init__.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/file_system/builders.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/file_system/ignore.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/file_system/ngram_index.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/file_system/service.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/file_system/trie_index.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/grep_ast/__init__.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/grep_ast/dump.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/grep_ast/grep_ast.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/grep_ast/main.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/grep_ast/parsers.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/grep_ast/tsl.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/hashline.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/hashpos/__init__.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/hashpos/hashpos.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/hashpos/hashpos.v1.bak +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/hashpos/transformations.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/io_proxy.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/leak_detect.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/llms/__init__.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/llms/aws_sigv4.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/llms/config.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/llms/constants.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/llms/domains/__init__.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/llms/domains/bedrock.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/llms/domains/gemini.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/llms/domains/messages.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/llms/domains/responses.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/llms/formatters/__init__.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/llms/formatters/reasoning.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/llms/formatters/thinking.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/llms/identifiers.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/llms/pipeline.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/llms/providers/__init__.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/llms/providers/anthropic.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/llms/providers/azure.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/llms/providers/base.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/llms/providers/bedrock.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/llms/providers/bedrock_mantle.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/llms/providers/deepseek.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/llms/providers/gemini.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/llms/providers/github_copilot.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/llms/providers/meta.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/llms/providers/mistral.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/llms/providers/ollama.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/llms/providers/openai.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/llms/providers/openrouter.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/llms/runtime.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/llms/types.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/llms/utils.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/lock_detect.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/loop_detect.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/memory/__init__.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/memory/db.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/memory/utils.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/memory_control.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/model_config/__init__.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/model_config/agent.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/model_config/api.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/model_config/formatters/__init__.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/model_config/formatters/reasoning.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/model_config/formatters/thinking.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/model_config/identifiers.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/model_config/llm.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/model_config/pipeline.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/model_config/registry.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/model_config/utils.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/model_providers.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/nested.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/observations/__init__.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/observations/service.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/onboarding/__init__.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/onboarding/app.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/onboarding/providers.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/orchestration/__init__.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/orchestration/agent_proxy.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/orchestration/environment.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/orchestration/region_resolver.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/orchestration/safe_methods.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/orchestration/security.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/orchestration/service.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/orchestration/tool_proxy.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/plugin_manager.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/profiler.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/queues.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/requests.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/responses.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/server/__init__.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/server/acp/__init__.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/server/acp/bridge.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/server/acp/models.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/server/acp/protocol.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/server/signals.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/server/ws_server.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/sessions/__init__.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/sessions/layout.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/sessions/storage.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/similarity.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/skills.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/threading.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/workspaces/__init__.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/workspaces/config.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/workspaces/paths.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/workspaces/subagents.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/helpers/workspaces/workspace.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/history.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/hooks/__init__.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/hooks/base.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/hooks/integration.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/hooks/manager.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/hooks/registry.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/hooks/service.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/hooks/types.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/http.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/interruptible_input.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/io.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/linter.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/llm.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/mcp/__init__.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/mcp/manager.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/mcp/oauth.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/mcp/server.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/mcp/utils.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/mdstream.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/onboarding.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/prompts/__init__.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/prompts/agent.yml +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/prompts/architect.yml +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/prompts/ask.yml +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/prompts/base.yml +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/prompts/context.yml +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/prompts/copypaste.yml +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/prompts/editblock.yml +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/prompts/editblock_fenced.yml +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/prompts/editblock_func.yml +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/prompts/editor_diff_fenced.yml +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/prompts/editor_editblock.yml +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/prompts/editor_whole.yml +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/prompts/hashline.yml +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/prompts/help.yml +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/prompts/patch.yml +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/prompts/single_wholefile_func.yml +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/prompts/subagent.yml +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/prompts/udiff.yml +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/prompts/udiff_simple.yml +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/prompts/utils/__init__.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/prompts/utils/registry.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/prompts/utils/system.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/prompts/wholefile.yml +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/prompts/wholefile_func.yml +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/queries/tree-sitter-language-pack/README.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/queries/tree-sitter-language-pack/arduino-tags.scm +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/queries/tree-sitter-language-pack/bash-tags.scm +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/queries/tree-sitter-language-pack/c-tags.scm +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/queries/tree-sitter-language-pack/chatito-tags.scm +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/queries/tree-sitter-language-pack/clojure-tags.scm +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/queries/tree-sitter-language-pack/commonlisp-tags.scm +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/queries/tree-sitter-language-pack/cpp-tags.scm +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/queries/tree-sitter-language-pack/csharp-tags.scm +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/queries/tree-sitter-language-pack/d-tags.scm +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/queries/tree-sitter-language-pack/dart-tags.scm +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/queries/tree-sitter-language-pack/elisp-tags.scm +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/queries/tree-sitter-language-pack/elixir-tags.scm +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/queries/tree-sitter-language-pack/elm-tags.scm +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/queries/tree-sitter-language-pack/gleam-tags.scm +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/queries/tree-sitter-language-pack/go-tags.scm +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/queries/tree-sitter-language-pack/java-tags.scm +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/queries/tree-sitter-language-pack/javascript-tags.scm +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/queries/tree-sitter-language-pack/lua-tags.scm +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/queries/tree-sitter-language-pack/matlab-tags.scm +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/queries/tree-sitter-language-pack/ocaml-tags.scm +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/queries/tree-sitter-language-pack/ocaml_interface-tags.scm +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/queries/tree-sitter-language-pack/pony-tags.scm +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/queries/tree-sitter-language-pack/properties-tags.scm +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/queries/tree-sitter-language-pack/python-tags.scm +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/queries/tree-sitter-language-pack/r-tags.scm +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/queries/tree-sitter-language-pack/racket-tags.scm +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/queries/tree-sitter-language-pack/ruby-tags.scm +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/queries/tree-sitter-language-pack/rust-tags.scm +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/queries/tree-sitter-language-pack/solidity-tags.scm +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/queries/tree-sitter-language-pack/swift-tags.scm +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/queries/tree-sitter-language-pack/udev-tags.scm +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/queries/tree-sitter-languages/README.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/queries/tree-sitter-languages/bash-tags.scm +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/queries/tree-sitter-languages/c-tags.scm +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/queries/tree-sitter-languages/c_sharp-tags.scm +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/queries/tree-sitter-languages/cpp-tags.scm +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/queries/tree-sitter-languages/dart-tags.scm +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/queries/tree-sitter-languages/elisp-tags.scm +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/queries/tree-sitter-languages/elixir-tags.scm +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/queries/tree-sitter-languages/elm-tags.scm +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/queries/tree-sitter-languages/fortran-tags.scm +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/queries/tree-sitter-languages/go-tags.scm +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/queries/tree-sitter-languages/haskell-tags.scm +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/queries/tree-sitter-languages/hcl-tags.scm +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/queries/tree-sitter-languages/java-tags.scm +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/queries/tree-sitter-languages/javascript-tags.scm +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/queries/tree-sitter-languages/julia-tags.scm +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/queries/tree-sitter-languages/kotlin-tags.scm +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/queries/tree-sitter-languages/matlab-tags.scm +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/queries/tree-sitter-languages/ocaml-tags.scm +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/queries/tree-sitter-languages/ocaml_interface-tags.scm +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/queries/tree-sitter-languages/php-tags.scm +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/queries/tree-sitter-languages/python-tags.scm +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/queries/tree-sitter-languages/ql-tags.scm +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/queries/tree-sitter-languages/ruby-tags.scm +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/queries/tree-sitter-languages/rust-tags.scm +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/queries/tree-sitter-languages/scala-tags.scm +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/queries/tree-sitter-languages/typescript-tags.scm +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/queries/tree-sitter-languages/zig-tags.scm +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/reasoning_tags.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/repo.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/repomap.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/report.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/resources/__init__.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/resources/model-metadata.ext.json +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/resources/model-metadata.json +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/resources/model-settings-condensed.yml +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/resources/model-settings.yml +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/resources/providers.json +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/run_cmd.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/scrape.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/sendchat.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/signals.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/special.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/tests/test_queue_commands.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/tools/__init__.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/tools/_yield.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/tools/broadcast.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/tools/command.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/tools/delegate.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/tools/edit_file.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/tools/explore_code.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/tools/git_branch.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/tools/git_diff.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/tools/git_log.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/tools/git_remote.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/tools/git_show.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/tools/git_status.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/tools/orchestrate.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/tools/read_file.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/tools/replace_facts.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/tools/search_facts.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/tools/thinking.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/tools/undo_change.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/tools/update_todo_list.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/tools/utils/__init__.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/tools/utils/base_tool.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/tools/utils/helpers.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/tools/utils/output.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/tools/utils/registry.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/tools/utils/responses.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/tools/validations/__init__.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/tools/validations/validations.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/tui/__init__.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/tui/io.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/tui/styles.tcss +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/tui/widgets/__init__.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/tui/widgets/file_list.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/tui/widgets/footer.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/tui/widgets/input_area.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/tui/widgets/input_container.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/tui/widgets/key_hints.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/tui/widgets/output.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/tui/widgets/output_alt.bak +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/tui/widgets/selectable_log.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/tui/widgets/status_bar.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/tui/widgets/subagent_pills.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/tui/widgets/thin_scrollbar.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/tui/worker.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/urls.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/versioncheck.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/voice.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/waiting.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/watch.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/watch_prompts.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/_includes/blame.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/_includes/get-started.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/_includes/help-tip.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/_includes/help.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/_includes/install.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/_includes/keys.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/_includes/model-warnings.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/_includes/multi-line.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/_includes/python-m-aider.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/_includes/recording.css +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/_includes/recording.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/_includes/works-best.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/_sass/_features.scss +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/_sass/_footer.scss +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/_sass/_hero.scss +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/_sass/_info.scss +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/_sass/_layout.scss +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/_sass/_reset.scss +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/_sass/_testimonials.scss +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/_sass/_typography.scss +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/_sass/_variables.scss +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/_sass/custom/custom.scss +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/_sass/global-overrides.scss +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docmd.config.json +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/cecli-temp-logo-favicon.svg +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/config/adv-model-settings.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/config/agent-mode.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/config/api-keys.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/config/api.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/config/custom-commands.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/config/custom-system-prompts.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/config/dotenv.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/config/editor.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/config/mcp.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/config/model-aliases.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/config/model-configuration.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/config/model-providers.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/config/options.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/config/persistent-memory.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/config/reasoning.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/config/security.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/config/skills.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/config/subagents.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/config/tui.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/config/workspaces.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/config.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/git.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/index.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/install/docker.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/install.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/languages.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/legal/contributor-agreement.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/legal/privacy.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/llms/anthropic.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/llms/azure.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/llms/bedrock.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/llms/cohere.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/llms/deepseek.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/llms/gemini.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/llms/github.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/llms/groq.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/llms/lm-studio.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/llms/ollama.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/llms/openai-compat.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/llms/openai.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/llms/opencode-go.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/llms/openrouter.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/llms/other.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/llms/vertex.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/llms/warnings.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/llms/xai.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/llms.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/more/analytics.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/more/edit-formats.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/more/infinite-output.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/more-info.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/repomap.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/scripting.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/troubleshooting/cecli-not-found.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/troubleshooting/edit-errors.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/troubleshooting/imports.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/troubleshooting/models-and-keys.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/troubleshooting/support.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/troubleshooting/token-limits.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/troubleshooting/warnings.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/troubleshooting.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/usage/commands.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/usage/conventions.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/usage/copypaste.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/usage/images-urls.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/usage/lint-test.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/usage/modes.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/usage/not-code.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/usage/notifications.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/usage/optional.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/usage/sessions.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/usage/voice.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/usage/watch.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/docs/usage.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/package-lock.json +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/package.json +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli/website/share/index.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli_dev.egg-info/dependency_links.txt +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli_dev.egg-info/entry_points.txt +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli_dev.egg-info/requires.txt +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/cecli_dev.egg-info/top_level.txt +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/docker/Dockerfile +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/docker/Dockerfile.local.nvidia.cuda.ubuntu +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/pyproject.toml +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/pytest.ini +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/requirements/common-constraints.txt +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/requirements/requirements-dev.in +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/requirements/requirements-dev.txt +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/requirements/requirements-help.in +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/requirements/requirements-help.txt +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/requirements/requirements-playwright.in +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/requirements/requirements-playwright.txt +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/requirements/requirements.in +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/requirements/tree-sitter.in +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/requirements.txt +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/scripts/30k-image.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/scripts/__init__.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/scripts/blame.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/scripts/clean_metadata.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/scripts/compare-message-history.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/scripts/condense_model_settings.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/scripts/cost_analyzer.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/scripts/cost_calculator.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/scripts/dl_icons.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/scripts/docmd_build.sh +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/scripts/filter-chat-mode.js +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/scripts/generate_providers.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/scripts/get_contributor_list.js +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/scripts/get_hashline.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/scripts/history_prompts.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/scripts/homepage.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/scripts/issues.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/scripts/logo_svg.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/scripts/optimize_tokens.sh +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/scripts/pip-compile.sh +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/scripts/recording_audio.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/scripts/redact-cast.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/scripts/rename_to_cecli.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/scripts/tmux_record.sh +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/scripts/tsl_pack_langs.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/scripts/update-blame.sh +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/scripts/update-docs.sh +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/scripts/update-history.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/scripts/versionbump.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/scripts/yank-old-versions.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/setup.cfg +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/shim.pyproject.toml +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/__init__.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/basic/__init__.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/basic/conftest.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/basic/test_aws_credentials.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/basic/test_background_commands.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/basic/test_coder.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/basic/test_commands.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/basic/test_custom_commands.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/basic/test_deprecated.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/basic/test_editblock.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/basic/test_editor.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/basic/test_exceptions.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/basic/test_file_system_service.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/basic/test_find_or_blocks.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/basic/test_hashline.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/basic/test_hashline_closure.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/basic/test_history.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/basic/test_io.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/basic/test_linter.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/basic/test_main.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/basic/test_model_info_manager.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/basic/test_model_provider_manager.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/basic/test_onboarding.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/basic/test_plugin_manager.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/basic/test_prompts.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/basic/test_reasoning.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/basic/test_repo.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/basic/test_repomap.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/basic/test_run_cmd.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/basic/test_sanity_check_repo.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/basic/test_scripting.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/basic/test_select_selector.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/basic/test_sendchat.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/basic/test_session_args.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/basic/test_session_crypto.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/basic/test_sessions.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/basic/test_skills.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/basic/test_special.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/basic/test_spinner.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/basic/test_ssl_verification.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/basic/test_udiff.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/basic/test_urls.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/basic/test_voice.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/basic/test_watch.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/basic/test_wholefile.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/coders/test_coder_switching.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/coders/test_copypaste_coder.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/coders/test_rate_limit.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/coders/test_tool_call_consolidation.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/commands/test_auto_memory.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/commands/test_compaction.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/commands/test_remove_memory.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/commands/test_search_memory.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/commands/test_switch_agent.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/commands/test_voice.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/commands/test_workspace.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/conftest.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/conversations/test_background_command_injection.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/conversations/test_conversation_integration.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/conversations/test_conversation_system.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/fixtures/chat-history-search-replace-gold.txt +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/fixtures/chat-history.md +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/fixtures/languages/arduino/test.ino +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/fixtures/languages/bash/test.sh +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/fixtures/languages/c/test.c +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/fixtures/languages/chatito/test.chatito +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/fixtures/languages/clojure/test.clj +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/fixtures/languages/commonlisp/test.lisp +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/fixtures/languages/cpp/test.cpp +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/fixtures/languages/csharp/test.cs +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/fixtures/languages/d/test.d +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/fixtures/languages/dart/test.dart +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/fixtures/languages/elisp/test.el +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/fixtures/languages/elixir/test.ex +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/fixtures/languages/elm/test.elm +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/fixtures/languages/gleam/test.gleam +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/fixtures/languages/go/test.go +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/fixtures/languages/haskell/test.hs +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/fixtures/languages/hcl/test.tf +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/fixtures/languages/java/test.java +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/fixtures/languages/javascript/test.js +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/fixtures/languages/kotlin/test.kt +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/fixtures/languages/lua/test.lua +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/fixtures/languages/matlab/test.m +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/fixtures/languages/ocaml/test.ml +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/fixtures/languages/ocaml_interface/test.mli +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/fixtures/languages/php/test.php +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/fixtures/languages/pony/test.pony +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/fixtures/languages/properties/test.properties +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/fixtures/languages/python/test.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/fixtures/languages/ql/test.ql +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/fixtures/languages/r/test.r +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/fixtures/languages/racket/test.rkt +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/fixtures/languages/ruby/test.rb +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/fixtures/languages/rust/test.rs +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/fixtures/languages/scala/test.scala +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/fixtures/languages/solidity/test.sol +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/fixtures/languages/swift/test.swift +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/fixtures/languages/tsx/test.tsx +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/fixtures/languages/typescript/test.ts +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/fixtures/languages/udev/test.rules +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/fixtures/languages/zig/test.zig +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/fixtures/sample-code-base/sample.js +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/fixtures/sample-code-base/sample.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/fixtures/sample-code-base-repo-map.txt +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/fixtures/watch.js +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/fixtures/watch.lisp +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/fixtures/watch.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/fixtures/watch_question.js +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/help/test_help.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/helpers/observations/test_observation_service.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/helpers/server/acp/__init__.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/helpers/server/acp/test_bridge.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/helpers/server/acp/test_dispatch.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/helpers/server/acp/test_models.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/helpers/server/acp/test_protocol.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/helpers/test_llms_api_base.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/helpers/test_llms_aws_sigv4.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/helpers/test_llms_cache_control.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/helpers/test_llms_gemini_auth.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/helpers/test_llms_github_copilot_auth.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/helpers/test_llms_hyperscalers.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/helpers/test_llms_messages_stream.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/helpers/test_llms_messages_wire.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/helpers/test_llms_mistral_adapter.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/helpers/test_llms_mistral_provider.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/helpers/test_llms_ollama_native.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/helpers/test_llms_providers_json.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/helpers/test_llms_reasoning_config.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/helpers/test_llms_reasoning_extract.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/helpers/test_llms_reasoning_summaries.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/helpers/test_llms_vision.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/helpers/test_loop_detect.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/helpers/test_memory_control.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/helpers/test_model_config.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/helpers/test_onboarding.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/helpers/test_orchestration.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/helpers/test_skills_importer.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/helpers/workspaces/conftest.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/helpers/workspaces/test_config.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/helpers/workspaces/test_paths.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/helpers/workspaces/test_subagents.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/helpers/workspaces/test_workspace_manager.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/hooks/__init__.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/hooks/test_base.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/hooks/test_manager.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/hooks/test_registry.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/integration/test_agent_mcp_management.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/integration/test_config_loading.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/integration/test_mcp_management.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/mcp/__init__.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/mcp/conftest.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/mcp/mock_server.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/mcp/test_keepalive_concurrency.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/mcp/test_keepalive_config.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/mcp/test_keepalive_integration.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/mcp/test_keepalive_logging.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/mcp/test_keepalive_resilience.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/mcp/test_keepalive_unit.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/mcp/test_manager.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/mcp/test_manager_retry.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/mcp/test_server_name_normalization.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/mcp/test_server_sdk_compat.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/mcp/test_tool_name_sanitization.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/scrape/test_playwright_disable.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/scrape/test_scrape.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/subagents/__init__.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/subagents/conftest.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/subagents/test_commands.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/subagents/test_config.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/subagents/test_delegate.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/subagents/test_finished.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/subagents/test_io_proxy.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/subagents/test_service.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/subagents/test_sub_agent_coder.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/test_requests.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/tools/test_command_format_output.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/tools/test_command_timeout_paging.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/tools/test_edit_file_format_output.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/tools/test_extractions.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/tools/test_get_lines.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/tools/test_git_branch.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/tools/test_git_diff.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/tools/test_grep.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/tools/test_insert_block.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/tools/test_read_range_execute.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/tools/test_registry.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/tools/test_remove_mcp_tool.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/tools/test_resource_manager_paging.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/tools/test_tool_arguments.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/tools/test_tools_load_mcp_tool.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/tools/validations.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/tui/test_app.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/tui/test_output.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/unit/conftest.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/unit/test_edge_cases.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/unit/test_load_mcp.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/unit/test_performance.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/unit/test_queues.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/unit/test_remove_mcp.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/unit/test_shallow_merge.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/unit/test_signals.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/unit/test_unit_load_mcp_tool.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/tests/unit/test_unit_remove_mcp_tool.py +0 -0
- {cecli_dev-1.6.2rc5 → cecli_dev-1.7.0}/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.
|
|
22
|
-
__version_tuple__ = version_tuple = (1,
|
|
21
|
+
__version__ = version = '1.7.0'
|
|
22
|
+
__version_tuple__ = version_tuple = (1, 7, 0)
|
|
23
23
|
|
|
24
|
-
__commit_id__ = commit_id = '
|
|
24
|
+
__commit_id__ = commit_id = 'g7157616ab'
|
|
@@ -61,6 +61,7 @@ DEEP_MERGE_JSON_FIELDS: frozenset[str] = frozenset(
|
|
|
61
61
|
"security_config",
|
|
62
62
|
"retries",
|
|
63
63
|
"custom",
|
|
64
|
+
"system_one",
|
|
64
65
|
"tui_config",
|
|
65
66
|
}
|
|
66
67
|
)
|
|
@@ -360,7 +361,7 @@ def get_parser(default_config_files, git_root):
|
|
|
360
361
|
metavar="RETRIES_JSON",
|
|
361
362
|
help=(
|
|
362
363
|
'Specify LLM retry configuration as a JSON/YAML string (e.g., \'{"retry_on_empty": '
|
|
363
|
-
"
|
|
364
|
+
'true, "retry-on-unauthorized": false}\')'
|
|
364
365
|
),
|
|
365
366
|
default=None,
|
|
366
367
|
)
|
|
@@ -427,6 +428,16 @@ def get_parser(default_config_files, git_root):
|
|
|
427
428
|
help="Specify hooks configuration as a JSON string",
|
|
428
429
|
default=None,
|
|
429
430
|
)
|
|
431
|
+
group.add_argument(
|
|
432
|
+
"--system-one",
|
|
433
|
+
metavar="SYSTEM_ONE_JSON",
|
|
434
|
+
help=(
|
|
435
|
+
"Specify the System One decision endpoint as a JSON/YAML string (e.g.,"
|
|
436
|
+
' \'{"api_base": "http://127.0.0.1:8000", "api_key_env": ["SYSTEM_ONE_API_KEY"],'
|
|
437
|
+
' "model_name": "von-latest"}\')'
|
|
438
|
+
),
|
|
439
|
+
default=None,
|
|
440
|
+
)
|
|
430
441
|
group.add_argument(
|
|
431
442
|
"--agent-model",
|
|
432
443
|
metavar="AGENT_MODEL",
|
|
@@ -138,6 +138,7 @@ class YamlHelpFormatter(argparse.HelpFormatter):
|
|
|
138
138
|
parts.append("# retry-timeout: 60")
|
|
139
139
|
parts.append("# retry-backoff-factor: 2.0")
|
|
140
140
|
parts.append("# retry-on-unavailable: true")
|
|
141
|
+
parts.append("# retry-on-unauthorized: false")
|
|
141
142
|
parts.append("# retry-on-empty: false")
|
|
142
143
|
parts.append("")
|
|
143
144
|
return "\n".join(parts)
|
|
@@ -66,7 +66,7 @@ from cecli.report import update_error_prefix
|
|
|
66
66
|
from cecli.run_cmd import run_cmd_async
|
|
67
67
|
from cecli.tools.utils.output import print_tool_response
|
|
68
68
|
from cecli.tools.utils.registry import ToolRegistry
|
|
69
|
-
from cecli.utils import copy_tool_call, format_tokens, is_image_file
|
|
69
|
+
from cecli.utils import copy_tool_call, format_tokens, is_image_file, safe_relpath
|
|
70
70
|
|
|
71
71
|
from ..dump import dump # noqa: F401
|
|
72
72
|
from ..prompts.utils.registry import PromptObject, PromptRegistry
|
|
@@ -2857,9 +2857,7 @@ class Coder(metaclass=UsageMeta):
|
|
|
2857
2857
|
|
|
2858
2858
|
retry_config = models.parse_retry_config(self.get_active_model().retries)
|
|
2859
2859
|
|
|
2860
|
-
should_retry =
|
|
2861
|
-
if ex_info.name == "ServiceUnavailableError":
|
|
2862
|
-
should_retry = should_retry or retry_config["retry_on_unavailable"]
|
|
2860
|
+
should_retry, _ = models.parse_model_error(retry_config, err)
|
|
2863
2861
|
|
|
2864
2862
|
if should_retry:
|
|
2865
2863
|
retry_delay *= retry_config["retry_backoff_factor"]
|
|
@@ -4877,7 +4875,7 @@ class Coder(metaclass=UsageMeta):
|
|
|
4877
4875
|
return
|
|
4878
4876
|
|
|
4879
4877
|
if not Path(full_path).exists():
|
|
4880
|
-
rel_path =
|
|
4878
|
+
rel_path = safe_relpath(full_path)
|
|
4881
4879
|
if not await self.io.confirm_ask(f"Create new file? ({rel_path})", subject=path):
|
|
4882
4880
|
self.io.tool_output(f"Skipping edits to {path}")
|
|
4883
4881
|
return
|
|
@@ -10,7 +10,7 @@ from cecli.commands.utils.helpers import (
|
|
|
10
10
|
parse_quoted_filenames,
|
|
11
11
|
quote_filename,
|
|
12
12
|
)
|
|
13
|
-
from cecli.utils import is_image_file, run_fzf
|
|
13
|
+
from cecli.utils import is_image_file, run_fzf, safe_relpath
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
class AddCommand(BaseCommand):
|
|
@@ -67,7 +67,7 @@ class AddCommand(BaseCommand):
|
|
|
67
67
|
io.tool_output(f"You can add to git with: /git add {fname}")
|
|
68
68
|
continue
|
|
69
69
|
|
|
70
|
-
confirm_fname =
|
|
70
|
+
confirm_fname = safe_relpath(fname)
|
|
71
71
|
if len(confirm_fname) > 64:
|
|
72
72
|
confirm_fname = f".../{os.path.basename(confirm_fname)}"
|
|
73
73
|
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
import base64
|
|
2
|
+
import os
|
|
3
|
+
import shutil
|
|
4
|
+
import subprocess
|
|
5
|
+
import tempfile
|
|
6
|
+
from io import BytesIO
|
|
7
|
+
from pathlib import Path
|
|
8
|
+
from typing import List
|
|
9
|
+
|
|
10
|
+
import pyperclip
|
|
11
|
+
from PIL import Image, ImageGrab
|
|
12
|
+
|
|
13
|
+
from cecli.commands.utils.base_command import BaseCommand
|
|
14
|
+
from cecli.commands.utils.helpers import format_command_result
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class PasteCommand(BaseCommand):
|
|
18
|
+
NORM_NAME = "paste"
|
|
19
|
+
DESCRIPTION = (
|
|
20
|
+
"Paste image/text from the clipboard into the chat. Optionally provide a name for the"
|
|
21
|
+
" image."
|
|
22
|
+
)
|
|
23
|
+
|
|
24
|
+
@classmethod
|
|
25
|
+
async def execute(cls, io, coder, args, **kwargs):
|
|
26
|
+
try:
|
|
27
|
+
image = cls._grab_clipboard_image(io)
|
|
28
|
+
|
|
29
|
+
if not isinstance(image, Image.Image):
|
|
30
|
+
# Fall back to text when there is no image
|
|
31
|
+
text = cls._read_clipboard_text(io)
|
|
32
|
+
if text:
|
|
33
|
+
if coder.tui and coder.tui():
|
|
34
|
+
coder.tui().set_input_value(text)
|
|
35
|
+
else:
|
|
36
|
+
coder.io.set_placeholder(text)
|
|
37
|
+
|
|
38
|
+
return format_command_result(io, "paste", "Pasted text from clipboard")
|
|
39
|
+
|
|
40
|
+
# On WSL the clipboard is owned by Windows and images are not always
|
|
41
|
+
# bridged to X11/Wayland, so probe the Windows clipboard directly.
|
|
42
|
+
if cls._is_wsl():
|
|
43
|
+
image = cls._grab_clipboard_image_windows(io)
|
|
44
|
+
|
|
45
|
+
if isinstance(image, Image.Image):
|
|
46
|
+
if args.strip():
|
|
47
|
+
filename = args.strip()
|
|
48
|
+
ext = os.path.splitext(filename)[1].lower()
|
|
49
|
+
if ext in (".jpg", ".jpeg", ".png"):
|
|
50
|
+
basename = filename
|
|
51
|
+
else:
|
|
52
|
+
basename = f"{filename}.png"
|
|
53
|
+
else:
|
|
54
|
+
basename = "clipboard_image.png"
|
|
55
|
+
|
|
56
|
+
temp_dir = tempfile.mkdtemp()
|
|
57
|
+
temp_file_path = os.path.join(temp_dir, basename)
|
|
58
|
+
image_format = "PNG" if basename.lower().endswith(".png") else "JPEG"
|
|
59
|
+
if image_format == "JPEG" and image.mode not in ("RGB", "L", "CMYK"):
|
|
60
|
+
image = image.convert("RGB")
|
|
61
|
+
|
|
62
|
+
image.save(temp_file_path, image_format)
|
|
63
|
+
|
|
64
|
+
abs_file_path = Path(temp_file_path).resolve()
|
|
65
|
+
|
|
66
|
+
# Check if a file with the same name already exists in the chat
|
|
67
|
+
existing_file = next(
|
|
68
|
+
(f for f in coder.abs_fnames if Path(f).name == abs_file_path.name), None
|
|
69
|
+
)
|
|
70
|
+
if existing_file:
|
|
71
|
+
coder.abs_fnames.remove(existing_file)
|
|
72
|
+
io.tool_output(f"Replaced existing image in the chat: {existing_file}")
|
|
73
|
+
|
|
74
|
+
coder.abs_fnames.add(str(abs_file_path))
|
|
75
|
+
io.tool_output(f"Added clipboard image to the chat: {abs_file_path}")
|
|
76
|
+
coder.check_added_files()
|
|
77
|
+
|
|
78
|
+
return format_command_result(io, "paste", f"Added clipboard image: {abs_file_path}")
|
|
79
|
+
|
|
80
|
+
io.tool_error("No image or text content found in clipboard.")
|
|
81
|
+
return format_command_result(
|
|
82
|
+
io, "paste", "No content found in clipboard", Exception("No content")
|
|
83
|
+
)
|
|
84
|
+
|
|
85
|
+
except Exception as e:
|
|
86
|
+
io.tool_error(f"Error processing clipboard content: {e}")
|
|
87
|
+
return format_command_result(io, "paste", f"Error: {str(e)}", e)
|
|
88
|
+
|
|
89
|
+
@classmethod
|
|
90
|
+
def get_completions(cls, io, coder, args) -> List[str]:
|
|
91
|
+
"""Get completion options for paste command."""
|
|
92
|
+
return []
|
|
93
|
+
|
|
94
|
+
@classmethod
|
|
95
|
+
def get_help(cls) -> str:
|
|
96
|
+
"""Get help text for the paste command."""
|
|
97
|
+
help_text = super().get_help()
|
|
98
|
+
help_text += "\nUsage:\n"
|
|
99
|
+
help_text += " /paste # Paste image or text from clipboard\n"
|
|
100
|
+
help_text += " /paste image.png # Paste image with specific filename\n"
|
|
101
|
+
help_text += (
|
|
102
|
+
"\nNote: This command pastes content from your system clipboard into the chat.\n"
|
|
103
|
+
)
|
|
104
|
+
help_text += (
|
|
105
|
+
"If an image is in the clipboard, it will be saved as a file and added to the chat.\n"
|
|
106
|
+
)
|
|
107
|
+
help_text += "If text is in the clipboard, it will be displayed in the chat.\n"
|
|
108
|
+
return help_text
|
|
109
|
+
|
|
110
|
+
@classmethod
|
|
111
|
+
def _grab_clipboard_image(cls, io):
|
|
112
|
+
"""Return an image from the clipboard, or None if it cannot be read."""
|
|
113
|
+
try:
|
|
114
|
+
return ImageGrab.grabclipboard()
|
|
115
|
+
except Exception as e:
|
|
116
|
+
# WAYLAND_DISPLAY can be set with no live compositor (e.g. WSLg or a
|
|
117
|
+
# stale SSH env), which makes the Wayland probe fail even though the
|
|
118
|
+
# bridged X11 clipboard works. Retry once over X11.
|
|
119
|
+
if os.environ.get("WAYLAND_DISPLAY"):
|
|
120
|
+
cls._log_clipboard_error(io, f"Wayland image probe failed: {e}")
|
|
121
|
+
return cls._grab_clipboard_image_x11(io)
|
|
122
|
+
|
|
123
|
+
# The image probe can fail even when the text clipboard works, so keep
|
|
124
|
+
# it quiet unless the user asked for detail.
|
|
125
|
+
cls._log_clipboard_error(io, f"Clipboard image read failed: {e}")
|
|
126
|
+
return None
|
|
127
|
+
|
|
128
|
+
@classmethod
|
|
129
|
+
def _grab_clipboard_image_x11(cls, io):
|
|
130
|
+
"""Retry the image probe with the Wayland display disabled."""
|
|
131
|
+
wayland_display = os.environ.pop("WAYLAND_DISPLAY", None)
|
|
132
|
+
try:
|
|
133
|
+
return ImageGrab.grabclipboard()
|
|
134
|
+
except Exception as e:
|
|
135
|
+
cls._log_clipboard_error(io, f"Clipboard image read failed over X11: {e}")
|
|
136
|
+
return None
|
|
137
|
+
finally:
|
|
138
|
+
if wayland_display is not None:
|
|
139
|
+
os.environ["WAYLAND_DISPLAY"] = wayland_display
|
|
140
|
+
|
|
141
|
+
@classmethod
|
|
142
|
+
def _grab_clipboard_image_windows(cls, io):
|
|
143
|
+
"""Read an image from the Windows clipboard via PowerShell (WSL only)."""
|
|
144
|
+
powershell = shutil.which("powershell.exe")
|
|
145
|
+
if not powershell:
|
|
146
|
+
return None
|
|
147
|
+
|
|
148
|
+
script = (
|
|
149
|
+
"Add-Type -AssemblyName System.Windows.Forms,System.Drawing\n"
|
|
150
|
+
"$img = [System.Windows.Forms.Clipboard]::GetImage()\n"
|
|
151
|
+
"if ($img -eq $null) { exit 1 }\n"
|
|
152
|
+
"$ms = New-Object System.IO.MemoryStream\n"
|
|
153
|
+
"$img.Save($ms, [System.Drawing.Imaging.ImageFormat]::Png)\n"
|
|
154
|
+
"[Convert]::ToBase64String($ms.ToArray())\n"
|
|
155
|
+
)
|
|
156
|
+
try:
|
|
157
|
+
result = subprocess.run(
|
|
158
|
+
[powershell, "-NoProfile", "-STA", "-Command", script],
|
|
159
|
+
capture_output=True,
|
|
160
|
+
timeout=30,
|
|
161
|
+
)
|
|
162
|
+
except Exception as e:
|
|
163
|
+
cls._log_clipboard_error(io, f"Windows clipboard image read failed: {e}")
|
|
164
|
+
return None
|
|
165
|
+
|
|
166
|
+
if result.returncode != 0 or not result.stdout.strip():
|
|
167
|
+
detail = result.stderr.decode("utf-8", "replace").strip()
|
|
168
|
+
cls._log_clipboard_error(io, f"Windows clipboard image read failed: {detail}")
|
|
169
|
+
return None
|
|
170
|
+
|
|
171
|
+
try:
|
|
172
|
+
image = Image.open(BytesIO(base64.b64decode(result.stdout)))
|
|
173
|
+
image.load()
|
|
174
|
+
return image
|
|
175
|
+
except Exception as e:
|
|
176
|
+
cls._log_clipboard_error(io, f"Windows clipboard image decode failed: {e}")
|
|
177
|
+
return None
|
|
178
|
+
|
|
179
|
+
@classmethod
|
|
180
|
+
def _is_wsl(cls):
|
|
181
|
+
"""Detect whether the process is running inside WSL."""
|
|
182
|
+
if os.environ.get("WSL_DISTRO_NAME") or os.environ.get("WSL_INTEROP"):
|
|
183
|
+
return True
|
|
184
|
+
|
|
185
|
+
try:
|
|
186
|
+
with open("/proc/version", "r", encoding="utf-8", errors="ignore") as f:
|
|
187
|
+
return "microsoft" in f.read().lower()
|
|
188
|
+
except OSError:
|
|
189
|
+
return False
|
|
190
|
+
|
|
191
|
+
@classmethod
|
|
192
|
+
def _read_clipboard_text(cls, io):
|
|
193
|
+
"""Return clipboard text, or an empty string if it is empty/unavailable."""
|
|
194
|
+
try:
|
|
195
|
+
return pyperclip.paste() or ""
|
|
196
|
+
except Exception as e:
|
|
197
|
+
# pyperclip's WSL backend raises on an empty Windows clipboard
|
|
198
|
+
# (GetBytes(null)), which is not an error worth surfacing.
|
|
199
|
+
cls._log_clipboard_error(io, f"Clipboard text read failed: {e}")
|
|
200
|
+
return ""
|
|
201
|
+
|
|
202
|
+
@classmethod
|
|
203
|
+
def _log_clipboard_error(cls, io, message):
|
|
204
|
+
"""Surface clipboard probe errors only in verbose mode."""
|
|
205
|
+
if getattr(io, "verbose", False):
|
|
206
|
+
io.tool_error(message)
|
|
@@ -226,11 +226,22 @@ def read_and_merge_all_configs(
|
|
|
226
226
|
return merged
|
|
227
227
|
|
|
228
228
|
|
|
229
|
+
def _safe_deepcopy(val, memo=None):
|
|
230
|
+
try:
|
|
231
|
+
return copy.deepcopy(val, memo)
|
|
232
|
+
except (TypeError, copy.Error):
|
|
233
|
+
if isinstance(val, dict):
|
|
234
|
+
return {k: _safe_deepcopy(v, memo) for k, v in val.items()}
|
|
235
|
+
elif isinstance(val, list):
|
|
236
|
+
return [_safe_deepcopy(item, memo) for item in val]
|
|
237
|
+
return val
|
|
238
|
+
|
|
239
|
+
|
|
229
240
|
def deep_merge(dict1: dict, dict2: dict, deep_merge_arrays: bool = True) -> dict:
|
|
230
241
|
"""
|
|
231
242
|
Recursively merges dict2 into dict1.
|
|
232
243
|
"""
|
|
233
|
-
merged =
|
|
244
|
+
merged = _safe_deepcopy(dict1)
|
|
234
245
|
|
|
235
246
|
for key, value in dict2.items():
|
|
236
247
|
if deep_merge_arrays and value is None:
|
|
@@ -248,7 +259,7 @@ def deep_merge(dict1: dict, dict2: dict, deep_merge_arrays: bool = True) -> dict
|
|
|
248
259
|
merged[key] = _deduplicate_list(merged[key], value)
|
|
249
260
|
|
|
250
261
|
else:
|
|
251
|
-
merged[key] =
|
|
262
|
+
merged[key] = _safe_deepcopy(value)
|
|
252
263
|
|
|
253
264
|
return merged
|
|
254
265
|
|
|
@@ -139,7 +139,7 @@ async def chat_complete(
|
|
|
139
139
|
else:
|
|
140
140
|
post_kwargs["json"] = payload
|
|
141
141
|
|
|
142
|
-
async with make_client(timeout=
|
|
142
|
+
async with make_client(timeout=_request_timeout(kwargs), verify=VERIFY_SSL) as client:
|
|
143
143
|
resp = await client.post(url, headers=hdrs, params=params, **post_kwargs)
|
|
144
144
|
resp.raise_for_status()
|
|
145
145
|
data = resp.json()
|
|
@@ -191,7 +191,7 @@ async def chat_stream(
|
|
|
191
191
|
else:
|
|
192
192
|
stream_kwargs["json"] = payload
|
|
193
193
|
|
|
194
|
-
async with make_client(timeout=
|
|
194
|
+
async with make_client(timeout=_request_timeout(kwargs), verify=VERIFY_SSL) as client:
|
|
195
195
|
async with client.stream("POST", url, headers=hdrs, params=params, **stream_kwargs) as resp:
|
|
196
196
|
resp.raise_for_status()
|
|
197
197
|
last_finish_reason = None
|
|
@@ -443,6 +443,19 @@ def _openai_env_override() -> Optional[Tuple[str, Optional[str]]]:
|
|
|
443
443
|
return (raw.strip().rstrip("/"), os.environ.get("OPENAI_API_KEY") or None)
|
|
444
444
|
|
|
445
445
|
|
|
446
|
+
def _request_timeout(kwargs: Dict[str, Any]) -> float:
|
|
447
|
+
"""Client timeout in seconds: the configured/request timeout, else the default.
|
|
448
|
+
|
|
449
|
+
The higher-level request kwargs carry ``timeout`` (issue #703); honoring it
|
|
450
|
+
here keeps long non-streaming responses from being cut off at
|
|
451
|
+
:data:`DEFAULT_TIMEOUT`.
|
|
452
|
+
"""
|
|
453
|
+
try:
|
|
454
|
+
return float(kwargs.get("timeout") or DEFAULT_TIMEOUT)
|
|
455
|
+
except (TypeError, ValueError):
|
|
456
|
+
return DEFAULT_TIMEOUT
|
|
457
|
+
|
|
458
|
+
|
|
446
459
|
__all__ = [
|
|
447
460
|
"chat_payload",
|
|
448
461
|
"chat_complete",
|
|
@@ -402,6 +402,16 @@ class _FacadeException(Exception):
|
|
|
402
402
|
for k, v in kwargs.items():
|
|
403
403
|
setattr(self, k, v)
|
|
404
404
|
|
|
405
|
+
def __str__(self) -> str:
|
|
406
|
+
s = super().__str__()
|
|
407
|
+
if s:
|
|
408
|
+
return s
|
|
409
|
+
cause = getattr(self, "__cause__", None)
|
|
410
|
+
if cause is not None:
|
|
411
|
+
cause_str = str(cause) or repr(cause)
|
|
412
|
+
return f"{self.__class__.__name__}: {cause_str}"
|
|
413
|
+
return self.__class__.__name__
|
|
414
|
+
|
|
405
415
|
|
|
406
416
|
class APIConnectionError(_FacadeException):
|
|
407
417
|
pass
|
|
@@ -509,7 +519,7 @@ def _translate_http_error(err: httpx.HTTPStatusError) -> _FacadeException:
|
|
|
509
519
|
except Exception:
|
|
510
520
|
text = ""
|
|
511
521
|
body = text.lower()
|
|
512
|
-
message = text or str(err)
|
|
522
|
+
message = text or str(err) or repr(err)
|
|
513
523
|
|
|
514
524
|
if status == 400 and any(
|
|
515
525
|
token in body for token in ("context", "context_length", "maximum context")
|
|
@@ -874,11 +884,11 @@ class _LiteLLMFacade:
|
|
|
874
884
|
**passthrough,
|
|
875
885
|
)
|
|
876
886
|
except httpx.TimeoutException as err:
|
|
877
|
-
raise Timeout(str(err)) from err
|
|
887
|
+
raise Timeout(str(err) or repr(err)) from err
|
|
878
888
|
except httpx.HTTPStatusError as err:
|
|
879
889
|
raise _translate_http_error(err) from err
|
|
880
890
|
except httpx.HTTPError as err:
|
|
881
|
-
raise APIConnectionError(str(err)) from err
|
|
891
|
+
raise APIConnectionError(str(err) or repr(err)) from err
|
|
882
892
|
|
|
883
893
|
return _response_shim(resp, model)
|
|
884
894
|
|
|
@@ -892,11 +902,11 @@ class _LiteLLMFacade:
|
|
|
892
902
|
async for chunk in gen:
|
|
893
903
|
yield _chunk_shim(chunk, model)
|
|
894
904
|
except httpx.TimeoutException as err:
|
|
895
|
-
raise Timeout(str(err)) from err
|
|
905
|
+
raise Timeout(str(err) or repr(err)) from err
|
|
896
906
|
except httpx.HTTPStatusError as err:
|
|
897
907
|
raise _translate_http_error(err) from err
|
|
898
908
|
except httpx.HTTPError as err:
|
|
899
|
-
raise APIConnectionError(str(err)) from err
|
|
909
|
+
raise APIConnectionError(str(err) or repr(err)) from err
|
|
900
910
|
|
|
901
911
|
def stream_chunk_builder(
|
|
902
912
|
self, chunks: List[Any], messages: Optional[Any] = None, **kwargs: Any
|
|
@@ -248,19 +248,30 @@ class SessionManager:
|
|
|
248
248
|
self.io.tool_warning(f"Could not restore sub-agent from {sub_file}: {e}")
|
|
249
249
|
|
|
250
250
|
async def _reload_sub_agent(self, service, sub_file: Path) -> None:
|
|
251
|
-
"""Spawn and restore a single sub-agent from its saved payload.
|
|
251
|
+
"""Spawn and restore a single sub-agent from its saved payload.
|
|
252
|
+
|
|
253
|
+
Only sub-agents that were still relevant when the session was saved are
|
|
254
|
+
rebuilt: independent agents are always restored, while a dependent agent
|
|
255
|
+
is restored only if it had not finished or errored. The transient
|
|
256
|
+
``memorizer`` helper is never restored.
|
|
257
|
+
"""
|
|
252
258
|
sub_data = self._read_session_payload(sub_file, quiet=True)
|
|
253
259
|
if not isinstance(sub_data, dict):
|
|
254
260
|
return
|
|
255
261
|
|
|
262
|
+
if not subagents.should_restore_sub_agent(sub_data):
|
|
263
|
+
return
|
|
264
|
+
|
|
256
265
|
name = subagents.resolve_reload_agent_name(
|
|
257
266
|
sub_data.get("agent_name") or "worker", sub_data.get("agent_root")
|
|
258
267
|
)
|
|
259
268
|
if not name:
|
|
260
269
|
return
|
|
261
270
|
|
|
271
|
+
independent = bool(sub_data.get("independent", True))
|
|
272
|
+
|
|
262
273
|
new_coder, _info = await service.spawn(
|
|
263
|
-
name, parent=self.coder, auto_reap=False, independent=
|
|
274
|
+
name, parent=self.coder, auto_reap=False, independent=independent
|
|
264
275
|
)
|
|
265
276
|
|
|
266
277
|
sub_manager = SessionManager(new_coder, self.io)
|
|
@@ -14,8 +14,19 @@ def build_payload(coder, io, session_name: str, agent_name: Optional[str] = None
|
|
|
14
14
|
|
|
15
15
|
``agent_name`` is the sub-agent type when saving a sub-agent and ``None``
|
|
16
16
|
for the primary agent. Workspace agents (``ws:*``) also record their root so
|
|
17
|
-
a later load can rebuild them at the right path.
|
|
17
|
+
a later load can rebuild them at the right path. Sub-agent payloads also
|
|
18
|
+
record their independence and lifecycle status so a reload can decide
|
|
19
|
+
whether they should be rebuilt.
|
|
18
20
|
"""
|
|
21
|
+
# Sub-agent lifecycle flags come from the AgentService; the primary agent
|
|
22
|
+
# has none and stores ``None`` for both.
|
|
23
|
+
if agent_name:
|
|
24
|
+
from .subagents import sub_agent_state
|
|
25
|
+
|
|
26
|
+
independent, status = sub_agent_state(coder)
|
|
27
|
+
else:
|
|
28
|
+
independent, status = None, None
|
|
29
|
+
|
|
19
30
|
editable_files = [coder.get_rel_fname(abs_fname) for abs_fname in coder.abs_fnames]
|
|
20
31
|
read_only_files = [coder.get_rel_fname(abs_fname) for abs_fname in coder.abs_read_only_fnames]
|
|
21
32
|
read_only_stubs_files = [
|
|
@@ -25,11 +36,13 @@ def build_payload(coder, io, session_name: str, agent_name: Optional[str] = None
|
|
|
25
36
|
# Flush any queued messages so the saved chat history is complete
|
|
26
37
|
ConversationService.get_manager(coder).flush_queue()
|
|
27
38
|
|
|
28
|
-
|
|
39
|
+
payload = {
|
|
29
40
|
"version": 1,
|
|
30
41
|
"session_name": session_name,
|
|
31
42
|
"agent_name": agent_name,
|
|
32
43
|
"agent_root": str(coder.root) if agent_name and agent_name.startswith("ws:") else None,
|
|
44
|
+
"independent": independent,
|
|
45
|
+
"status": status,
|
|
33
46
|
"model": coder.main_model.name,
|
|
34
47
|
"weak_model": coder.main_model.weak_model.name,
|
|
35
48
|
"editor_model": coder.main_model.editor_model.name,
|
|
@@ -66,6 +79,8 @@ def build_payload(coder, io, session_name: str, agent_name: Optional[str] = None
|
|
|
66
79
|
},
|
|
67
80
|
}
|
|
68
81
|
|
|
82
|
+
return payload
|
|
83
|
+
|
|
69
84
|
|
|
70
85
|
async def apply_payload(
|
|
71
86
|
coder, io, session_data: Dict, session_file, sub_agent: bool = False
|
|
@@ -12,6 +12,10 @@ from .storage import write_payload
|
|
|
12
12
|
|
|
13
13
|
logger = logging.getLogger(__name__)
|
|
14
14
|
|
|
15
|
+
# The memorizer is a transient helper that is re-spawned on demand; a saved
|
|
16
|
+
# session must never try to resurrect it.
|
|
17
|
+
MEMORIZER_AGENT_NAME = "memorizer"
|
|
18
|
+
|
|
15
19
|
|
|
16
20
|
def detect_agent_name(coder) -> Optional[str]:
|
|
17
21
|
"""Return a coder's sub-agent type, or ``None`` for the primary agent."""
|
|
@@ -64,6 +68,33 @@ def live_sub_agents(coder) -> List[Tuple[str, object]]:
|
|
|
64
68
|
return agents
|
|
65
69
|
|
|
66
70
|
|
|
71
|
+
def sub_agent_state(coder) -> Tuple[bool, Optional[str]]:
|
|
72
|
+
"""Return ``(independent, status)`` for a tracked sub-agent coder.
|
|
73
|
+
|
|
74
|
+
Falls back to ``(False, None)`` when the coder is not (or no longer) tracked
|
|
75
|
+
by the :class:`AgentService`, so payload building stays safe for callers with
|
|
76
|
+
no live service.
|
|
77
|
+
"""
|
|
78
|
+
from cecli.helpers.agents.service import AgentService
|
|
79
|
+
|
|
80
|
+
coder_uuid = getattr(coder, "uuid", None)
|
|
81
|
+
if not isinstance(coder_uuid, str) or not coder_uuid:
|
|
82
|
+
return False, None
|
|
83
|
+
|
|
84
|
+
try:
|
|
85
|
+
service = AgentService.get_instance(coder)
|
|
86
|
+
except Exception:
|
|
87
|
+
return False, None
|
|
88
|
+
|
|
89
|
+
info = service.sub_agents.get(coder_uuid)
|
|
90
|
+
if info is None:
|
|
91
|
+
return False, None
|
|
92
|
+
|
|
93
|
+
status = getattr(getattr(info, "status", None), "value", None)
|
|
94
|
+
|
|
95
|
+
return bool(getattr(info, "independent", False)), status
|
|
96
|
+
|
|
97
|
+
|
|
67
98
|
def save_sub_agents(coder, io, session_name: str, subs_dir: Path) -> int:
|
|
68
99
|
"""Write each descendant sub-agent payload into ``subs_dir/{child}/agent.json``.
|
|
69
100
|
|
|
@@ -83,6 +114,27 @@ def save_sub_agents(coder, io, session_name: str, subs_dir: Path) -> int:
|
|
|
83
114
|
return written
|
|
84
115
|
|
|
85
116
|
|
|
117
|
+
def should_restore_sub_agent(sub_data: Dict) -> bool:
|
|
118
|
+
"""Return whether a saved sub-agent payload should be rebuilt on load.
|
|
119
|
+
|
|
120
|
+
Independent agents are always restored regardless of how they finished. A
|
|
121
|
+
dependent agent is restored only while it is still unfinished and unerrored.
|
|
122
|
+
The transient ``memorizer`` helper is never restored.
|
|
123
|
+
"""
|
|
124
|
+
from cecli.helpers.agents.service import SubAgentStatus
|
|
125
|
+
|
|
126
|
+
agent_name = sub_data.get("agent_name")
|
|
127
|
+
if not agent_name or agent_name == MEMORIZER_AGENT_NAME:
|
|
128
|
+
return False
|
|
129
|
+
|
|
130
|
+
if sub_data.get("independent", True):
|
|
131
|
+
return True
|
|
132
|
+
|
|
133
|
+
status = sub_data.get("status")
|
|
134
|
+
|
|
135
|
+
return status not in (SubAgentStatus.FINISHED.value, SubAgentStatus.ERROR.value)
|
|
136
|
+
|
|
137
|
+
|
|
86
138
|
def resolve_reload_agent_name(name: str, root: Optional[str]) -> Optional[str]:
|
|
87
139
|
"""Resolve a stored agent type to a registered name, falling back to ``worker``."""
|
|
88
140
|
from cecli.helpers.agents.service import AgentService
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"""System One decision endpoints, speaking the ``/v1/systemone`` wire format.
|
|
2
|
+
|
|
3
|
+
Three layers live here, from the wire up:
|
|
4
|
+
|
|
5
|
+
- :mod:`cecli.helpers.system_one.types` - the question/answer vocabulary
|
|
6
|
+
(``noul`` / ``choice`` / ``score``) and the parsing of response bodies.
|
|
7
|
+
- :mod:`cecli.helpers.system_one.api` - one call per decision (:func:`decide`,
|
|
8
|
+
:func:`judge`, :func:`rate`) plus :func:`system_one` / :func:`ask` for
|
|
9
|
+
several questions over one state.
|
|
10
|
+
- :mod:`cecli.helpers.system_one.integrations` - the shorthand forms other cecli
|
|
11
|
+
subsystems (hooks today) use, so their call sites stay one-liners.
|
|
12
|
+
|
|
13
|
+
Endpoint settings come from ``--system-one`` (or the ``system-one`` config-file
|
|
14
|
+
key), installed with :func:`configure`, or from ``SYSTEM_ONE_*`` defaults.
|
|
15
|
+
"""
|
|
16
|
+
|
|
17
|
+
from cecli.helpers.system_one.api import (
|
|
18
|
+
DECIDE_QUESTION_ID,
|
|
19
|
+
JUDGE_QUESTION_ID,
|
|
20
|
+
RATE_QUESTION_ID,
|
|
21
|
+
ask,
|
|
22
|
+
decide,
|
|
23
|
+
judge,
|
|
24
|
+
rate,
|
|
25
|
+
system_one,
|
|
26
|
+
)
|
|
27
|
+
from cecli.helpers.system_one.client import SystemOneClient, SystemOneError
|
|
28
|
+
from cecli.helpers.system_one.config import (
|
|
29
|
+
DEFAULT_API_BASE,
|
|
30
|
+
ENDPOINT_PATH,
|
|
31
|
+
SystemOneConfig,
|
|
32
|
+
configure,
|
|
33
|
+
get_config,
|
|
34
|
+
is_configured,
|
|
35
|
+
reset,
|
|
36
|
+
)
|
|
37
|
+
from cecli.helpers.system_one.types import (
|
|
38
|
+
CHOICE,
|
|
39
|
+
NOUL,
|
|
40
|
+
QUESTION_TYPES,
|
|
41
|
+
SCORE,
|
|
42
|
+
ChoiceAnswer,
|
|
43
|
+
NoulAnswer,
|
|
44
|
+
ScoreAnswer,
|
|
45
|
+
SystemOneResponse,
|
|
46
|
+
build_payload,
|
|
47
|
+
choice,
|
|
48
|
+
noul,
|
|
49
|
+
parse_answer,
|
|
50
|
+
parse_response,
|
|
51
|
+
score,
|
|
52
|
+
)
|
|
53
|
+
|
|
54
|
+
__all__ = [
|
|
55
|
+
"CHOICE",
|
|
56
|
+
"DEFAULT_API_BASE",
|
|
57
|
+
"DECIDE_QUESTION_ID",
|
|
58
|
+
"JUDGE_QUESTION_ID",
|
|
59
|
+
"RATE_QUESTION_ID",
|
|
60
|
+
"ENDPOINT_PATH",
|
|
61
|
+
"NOUL",
|
|
62
|
+
"QUESTION_TYPES",
|
|
63
|
+
"SCORE",
|
|
64
|
+
"ChoiceAnswer",
|
|
65
|
+
"NoulAnswer",
|
|
66
|
+
"ScoreAnswer",
|
|
67
|
+
"SystemOneClient",
|
|
68
|
+
"SystemOneConfig",
|
|
69
|
+
"SystemOneError",
|
|
70
|
+
"SystemOneResponse",
|
|
71
|
+
"ask",
|
|
72
|
+
"build_payload",
|
|
73
|
+
"choice",
|
|
74
|
+
"configure",
|
|
75
|
+
"decide",
|
|
76
|
+
"get_config",
|
|
77
|
+
"is_configured",
|
|
78
|
+
"judge",
|
|
79
|
+
"noul",
|
|
80
|
+
"parse_answer",
|
|
81
|
+
"parse_response",
|
|
82
|
+
"rate",
|
|
83
|
+
"reset",
|
|
84
|
+
"score",
|
|
85
|
+
"system_one",
|
|
86
|
+
]
|