cecli-dev 0.95.6.dev1__tar.gz → 0.95.7__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/.github/workflows/ubuntu-tests.yml +2 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/.github/workflows/windows-tests.yml +2 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/PKG-INFO +5 -4
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/README.md +4 -3
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/__init__.py +1 -1
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/_version.py +3 -3
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/args.py +25 -10
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/coders/agent_coder.py +50 -38
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/coders/base_coder.py +26 -10
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/commands/core.py +10 -7
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/helpers/model_providers.py +51 -2
- cecli_dev-0.95.7/cecli/helpers/nested.py +83 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/io.py +3 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/main.py +6 -3
- cecli_dev-0.95.7/cecli/prompts/utils/registry.py +203 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/resources/providers.json +9 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/config/custom-commands.md +4 -2
- cecli_dev-0.95.7/cecli/website/docs/config/custom-system-prompts.md +162 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli_dev.egg-info/PKG-INFO +5 -4
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli_dev.egg-info/SOURCES.txt +3 -1
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/pytest.ini +1 -1
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/basic/test_commands.py +11 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/basic/test_model_provider_manager.py +118 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/basic/test_prompts.py +139 -77
- cecli_dev-0.95.6.dev1/cecli/prompts/utils/prompt_registry.py +0 -167
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/.dockerignore +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/.flake8 +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/.gitattributes +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/.github/ISSUE_TEMPLATE/issue.yml +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/.github/workflows/check_pypi_version.yml +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/.github/workflows/docker-build-test.yml +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/.github/workflows/docker-release.yml +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/.github/workflows/issues.yml +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/.github/workflows/pages.yml +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/.github/workflows/pre-commit.yml +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/.github/workflows/release.yml +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/.github/workflows/windows_check_pypi_version.yml +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/.gitignore +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/.pre-commit-config.yaml +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/CHANGELOG.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/CNAME +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/CONTRIBUTING.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/HISTORY.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/LICENSE.txt +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/MANIFEST.in +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/benchmark/Dockerfile +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/benchmark/README.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/benchmark/__init__.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/benchmark/benchmark.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/benchmark/benchmark_classic.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/benchmark/clone-exercism.sh +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/benchmark/cpp-test.sh +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/benchmark/docker.sh +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/benchmark/docker_build.sh +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/benchmark/install-docker-ubuntu.sh +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/benchmark/npm-test.sh +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/benchmark/over_time.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/benchmark/plot.sh +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/benchmark/plots.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/benchmark/problem_stats.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/benchmark/prompts.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/benchmark/refactor_tools.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/benchmark/rsync.sh +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/benchmark/rungrid.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/benchmark/swe-bench-lite.txt +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/benchmark/swe-bench.txt +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/benchmark/swe_bench.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/benchmark/test_benchmark.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/__main__.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/args_formatter.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/change_tracker.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/coders/__init__.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/coders/architect_coder.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/coders/ask_coder.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/coders/chat_chunks.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/coders/context_coder.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/coders/copypaste_coder.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/coders/editblock_coder.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/coders/editblock_fenced_coder.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/coders/editblock_func_coder.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/coders/editor_diff_fenced_coder.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/coders/editor_editblock_coder.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/coders/editor_whole_coder.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/coders/help_coder.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/coders/patch_coder.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/coders/search_replace.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/coders/shell.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/coders/single_wholefile_func_coder.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/coders/udiff_coder.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/coders/udiff_simple.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/coders/wholefile_coder.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/coders/wholefile_func_coder.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/commands/__init__.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/commands/add.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/commands/agent.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/commands/architect.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/commands/ask.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/commands/chat_mode.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/commands/clear.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/commands/code.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/commands/command_prefix.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/commands/commit.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/commands/context.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/commands/context_blocks.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/commands/context_management.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/commands/copy.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/commands/copy_context.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/commands/diff.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/commands/drop.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/commands/editor.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/commands/exit.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/commands/git.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/commands/help.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/commands/history_search.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/commands/lint.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/commands/list_sessions.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/commands/load.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/commands/load_session.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/commands/load_skill.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/commands/ls.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/commands/map.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/commands/map_refresh.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/commands/model.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/commands/models.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/commands/multiline_mode.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/commands/paste.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/commands/quit.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/commands/read_only.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/commands/read_only_stub.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/commands/reasoning_effort.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/commands/remove_skill.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/commands/report.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/commands/reset.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/commands/run.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/commands/save.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/commands/save_session.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/commands/settings.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/commands/test.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/commands/think_tokens.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/commands/tokens.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/commands/undo.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/commands/utils/__init__.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/commands/utils/base_command.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/commands/utils/helpers.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/commands/utils/registry.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/commands/utils/save_load_manager.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/commands/voice.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/commands/weak_model.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/commands/web.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/deprecated_args.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/diffs.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/dump.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/editor.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/exceptions.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/format_settings.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/help.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/help_pats.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/helpers/__init__.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/helpers/copypaste.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/helpers/coroutines.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/helpers/file_searcher.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/helpers/plugin_manager.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/helpers/profiler.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/helpers/requests.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/helpers/similarity.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/helpers/skills.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/history.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/linter.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/llm.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/mcp/__init__.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/mcp/oauth.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/mcp/server.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/mdstream.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/models.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/onboarding.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/prompts/__init__.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/prompts/agent.yml +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/prompts/architect.yml +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/prompts/ask.yml +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/prompts/base.yml +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/prompts/context.yml +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/prompts/copypaste.yml +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/prompts/editblock.yml +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/prompts/editblock_fenced.yml +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/prompts/editblock_func.yml +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/prompts/editor_diff_fenced.yml +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/prompts/editor_editblock.yml +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/prompts/editor_whole.yml +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/prompts/help.yml +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/prompts/patch.yml +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/prompts/single_wholefile_func.yml +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/prompts/udiff.yml +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/prompts/udiff_simple.yml +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/prompts/utils/__init__.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/prompts/utils/system.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/prompts/wholefile.yml +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/prompts/wholefile_func.yml +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/queries/tree-sitter-language-pack/README.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/queries/tree-sitter-language-pack/arduino-tags.scm +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/queries/tree-sitter-language-pack/c-tags.scm +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/queries/tree-sitter-language-pack/chatito-tags.scm +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/queries/tree-sitter-language-pack/clojure-tags.scm +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/queries/tree-sitter-language-pack/commonlisp-tags.scm +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/queries/tree-sitter-language-pack/cpp-tags.scm +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/queries/tree-sitter-language-pack/csharp-tags.scm +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/queries/tree-sitter-language-pack/d-tags.scm +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/queries/tree-sitter-language-pack/dart-tags.scm +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/queries/tree-sitter-language-pack/elisp-tags.scm +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/queries/tree-sitter-language-pack/elixir-tags.scm +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/queries/tree-sitter-language-pack/elm-tags.scm +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/queries/tree-sitter-language-pack/gleam-tags.scm +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/queries/tree-sitter-language-pack/go-tags.scm +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/queries/tree-sitter-language-pack/java-tags.scm +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/queries/tree-sitter-language-pack/javascript-tags.scm +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/queries/tree-sitter-language-pack/lua-tags.scm +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/queries/tree-sitter-language-pack/matlab-tags.scm +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/queries/tree-sitter-language-pack/ocaml-tags.scm +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/queries/tree-sitter-language-pack/ocaml_interface-tags.scm +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/queries/tree-sitter-language-pack/pony-tags.scm +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/queries/tree-sitter-language-pack/properties-tags.scm +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/queries/tree-sitter-language-pack/python-tags.scm +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/queries/tree-sitter-language-pack/r-tags.scm +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/queries/tree-sitter-language-pack/racket-tags.scm +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/queries/tree-sitter-language-pack/ruby-tags.scm +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/queries/tree-sitter-language-pack/rust-tags.scm +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/queries/tree-sitter-language-pack/solidity-tags.scm +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/queries/tree-sitter-language-pack/swift-tags.scm +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/queries/tree-sitter-language-pack/udev-tags.scm +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/queries/tree-sitter-languages/README.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/queries/tree-sitter-languages/c-tags.scm +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/queries/tree-sitter-languages/c_sharp-tags.scm +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/queries/tree-sitter-languages/cpp-tags.scm +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/queries/tree-sitter-languages/dart-tags.scm +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/queries/tree-sitter-languages/elisp-tags.scm +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/queries/tree-sitter-languages/elixir-tags.scm +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/queries/tree-sitter-languages/elm-tags.scm +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/queries/tree-sitter-languages/fortran-tags.scm +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/queries/tree-sitter-languages/go-tags.scm +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/queries/tree-sitter-languages/haskell-tags.scm +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/queries/tree-sitter-languages/hcl-tags.scm +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/queries/tree-sitter-languages/java-tags.scm +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/queries/tree-sitter-languages/javascript-tags.scm +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/queries/tree-sitter-languages/julia-tags.scm +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/queries/tree-sitter-languages/kotlin-tags.scm +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/queries/tree-sitter-languages/matlab-tags.scm +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/queries/tree-sitter-languages/ocaml-tags.scm +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/queries/tree-sitter-languages/ocaml_interface-tags.scm +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/queries/tree-sitter-languages/php-tags.scm +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/queries/tree-sitter-languages/python-tags.scm +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/queries/tree-sitter-languages/ql-tags.scm +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/queries/tree-sitter-languages/ruby-tags.scm +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/queries/tree-sitter-languages/rust-tags.scm +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/queries/tree-sitter-languages/scala-tags.scm +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/queries/tree-sitter-languages/typescript-tags.scm +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/queries/tree-sitter-languages/zig-tags.scm +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/reasoning_tags.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/repo.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/repomap.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/report.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/resources/__init__.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/resources/model-metadata.json +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/resources/model-settings.yml +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/run_cmd.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/scrape.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/sendchat.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/sessions.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/special.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/tools/__init__.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/tools/command.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/tools/command_interactive.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/tools/context_manager.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/tools/delete_block.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/tools/delete_line.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/tools/delete_lines.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/tools/extract_lines.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/tools/finished.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/tools/git_branch.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/tools/git_diff.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/tools/git_log.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/tools/git_remote.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/tools/git_show.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/tools/git_status.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/tools/grep.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/tools/indent_lines.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/tools/insert_block.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/tools/list_changes.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/tools/load_skill.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/tools/ls.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/tools/remove_skill.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/tools/replace_all.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/tools/replace_line.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/tools/replace_lines.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/tools/replace_text.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/tools/show_numbered_context.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/tools/thinking.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/tools/undo_change.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/tools/update_todo_list.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/tools/utils/base_tool.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/tools/utils/helpers.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/tools/utils/output.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/tools/utils/registry.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/tools/view_files_matching.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/tools/view_files_with_symbol.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/tui/__init__.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/tui/app.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/tui/io.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/tui/styles.tcss +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/tui/widgets/__init__.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/tui/widgets/completion_bar.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/tui/widgets/file_list.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/tui/widgets/footer.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/tui/widgets/input_area.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/tui/widgets/key_hints.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/tui/widgets/output.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/tui/widgets/status_bar.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/tui/worker.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/urls.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/utils.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/versioncheck.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/voice.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/waiting.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/watch.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/watch_prompts.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/Gemfile +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/_includes/blame.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/_includes/get-started.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/_includes/help-tip.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/_includes/help.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/_includes/install.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/_includes/keys.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/_includes/model-warnings.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/_includes/multi-line.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/_includes/python-m-aider.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/_includes/recording.css +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/_includes/recording.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/_includes/replit-pipx.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/_includes/works-best.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/_sass/custom/custom.scss +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/config/adv-model-settings.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/config/agent-mode.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/config/aider_conf.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/config/api-keys.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/config/dotenv.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/config/editor.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/config/mcp.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/config/model-aliases.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/config/options.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/config/reasoning.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/config/skills.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/config/tui.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/config.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/faq.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/git.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/index.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/install/codespaces.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/install/docker.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/install/optional.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/install/replit.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/install.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/languages.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/legal/contributor-agreement.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/legal/privacy.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/llms/anthropic.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/llms/azure.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/llms/bedrock.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/llms/cohere.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/llms/deepseek.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/llms/gemini.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/llms/github.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/llms/groq.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/llms/lm-studio.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/llms/ollama.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/llms/openai-compat.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/llms/openai.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/llms/openrouter.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/llms/other.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/llms/vertex.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/llms/warnings.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/llms/xai.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/llms.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/more/analytics.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/more/edit-formats.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/more/infinite-output.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/more-info.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/recordings/auto-accept-architect.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/recordings/dont-drop-original-read-files.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/recordings/index.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/recordings/model-accepts-settings.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/recordings/tree-sitter-language-pack.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/repomap.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/scripting.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/sessions.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/troubleshooting/aider-not-found.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/troubleshooting/edit-errors.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/troubleshooting/imports.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/troubleshooting/models-and-keys.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/troubleshooting/support.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/troubleshooting/token-limits.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/troubleshooting/warnings.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/troubleshooting.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/usage/browser.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/usage/caching.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/usage/commands.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/usage/conventions.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/usage/copypaste.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/usage/images-urls.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/usage/lint-test.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/usage/modes.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/usage/not-code.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/usage/notifications.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/usage/tips.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/usage/tutorials.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/usage/voice.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/usage/watch.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/docs/usage.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli/website/share/index.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli_dev.egg-info/dependency_links.txt +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli_dev.egg-info/entry_points.txt +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli_dev.egg-info/requires.txt +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/cecli_dev.egg-info/top_level.txt +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/docker/Dockerfile +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/docker/Dockerfile.local.nvidia.cuda.ubuntu +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/pyproject.toml +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/requirements/common-constraints.txt +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/requirements/requirements-dev.in +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/requirements/requirements-dev.txt +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/requirements/requirements-help.in +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/requirements/requirements-help.txt +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/requirements/requirements-playwright.in +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/requirements/requirements-playwright.txt +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/requirements/requirements.in +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/requirements/tree-sitter.in +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/requirements.txt +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/scripts/30k-image.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/scripts/Dockerfile.jekyll +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/scripts/__init__.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/scripts/blame.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/scripts/clean_metadata.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/scripts/cost_analyzer.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/scripts/dl_icons.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/scripts/filter-chat-mode.js +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/scripts/generate_providers.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/scripts/get_contributor_list.js +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/scripts/history_prompts.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/scripts/homepage.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/scripts/issues.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/scripts/jekyll_build.sh +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/scripts/jekyll_run.sh +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/scripts/logo_svg.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/scripts/pip-compile.sh +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/scripts/recording_audio.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/scripts/redact-cast.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/scripts/rename_to_cecli.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/scripts/tmux_record.sh +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/scripts/tsl_pack_langs.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/scripts/update-blame.sh +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/scripts/update-docs.sh +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/scripts/update-history.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/scripts/versionbump.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/scripts/yank-old-versions.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/setup.cfg +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/shim.pyproject.toml +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/__init__.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/basic/__init__.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/basic/test_aws_credentials.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/basic/test_coder.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/basic/test_deprecated.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/basic/test_editblock.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/basic/test_editor.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/basic/test_exceptions.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/basic/test_find_or_blocks.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/basic/test_history.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/basic/test_io.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/basic/test_linter.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/basic/test_main.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/basic/test_model_info_manager.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/basic/test_models.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/basic/test_onboarding.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/basic/test_plugin_manager.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/basic/test_reasoning.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/basic/test_repo.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/basic/test_repomap.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/basic/test_run_cmd.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/basic/test_sanity_check_repo.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/basic/test_scripting.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/basic/test_sendchat.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/basic/test_sessions.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/basic/test_skills.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/basic/test_special.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/basic/test_ssl_verification.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/basic/test_udiff.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/basic/test_urls.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/basic/test_voice.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/basic/test_watch.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/basic/test_wholefile.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/coders/test_copypaste_coder.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/conftest.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/fixtures/chat-history-search-replace-gold.txt +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/fixtures/chat-history.md +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/fixtures/languages/arduino/test.ino +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/fixtures/languages/c/test.c +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/fixtures/languages/chatito/test.chatito +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/fixtures/languages/clojure/test.clj +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/fixtures/languages/commonlisp/test.lisp +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/fixtures/languages/cpp/test.cpp +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/fixtures/languages/csharp/test.cs +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/fixtures/languages/d/test.d +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/fixtures/languages/dart/test.dart +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/fixtures/languages/elisp/test.el +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/fixtures/languages/elixir/test.ex +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/fixtures/languages/elm/test.elm +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/fixtures/languages/gleam/test.gleam +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/fixtures/languages/go/test.go +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/fixtures/languages/haskell/test.hs +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/fixtures/languages/hcl/test.tf +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/fixtures/languages/java/test.java +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/fixtures/languages/javascript/test.js +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/fixtures/languages/kotlin/test.kt +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/fixtures/languages/lua/test.lua +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/fixtures/languages/matlab/test.m +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/fixtures/languages/ocaml/test.ml +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/fixtures/languages/ocaml_interface/test.mli +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/fixtures/languages/php/test.php +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/fixtures/languages/pony/test.pony +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/fixtures/languages/properties/test.properties +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/fixtures/languages/python/test.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/fixtures/languages/ql/test.ql +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/fixtures/languages/r/test.r +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/fixtures/languages/racket/test.rkt +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/fixtures/languages/ruby/test.rb +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/fixtures/languages/rust/test.rs +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/fixtures/languages/scala/test.scala +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/fixtures/languages/solidity/test.sol +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/fixtures/languages/swift/test.swift +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/fixtures/languages/tsx/test.tsx +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/fixtures/languages/typescript/test.ts +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/fixtures/languages/udev/test.rules +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/fixtures/languages/zig/test.zig +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/fixtures/sample-code-base/sample.js +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/fixtures/sample-code-base/sample.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/fixtures/sample-code-base-repo-map.txt +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/fixtures/watch.js +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/fixtures/watch.lisp +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/fixtures/watch.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/fixtures/watch_question.js +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/help/test_help.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/scrape/test_playwright_disable.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/scrape/test_scrape.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/tools/test_git_branch.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/tools/test_git_diff.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/tools/test_grep.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/tools/test_insert_block.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/tools/test_registry.py +0 -0
- {cecli_dev-0.95.6.dev1 → cecli_dev-0.95.7}/tests/tools/test_show_numbered_context.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: cecli-dev
|
|
3
|
-
Version: 0.95.
|
|
3
|
+
Version: 0.95.7
|
|
4
4
|
Summary: we also can't pronounce cecli
|
|
5
5
|
Project-URL: Homepage, https://github.com/dwash96/cecli
|
|
6
6
|
Project-URL: Documentation, https://github.com/dwash96/cecli
|
|
@@ -105,6 +105,7 @@ LLMs are a part of our lives from here on out so join us in learning about and c
|
|
|
105
105
|
* [Skills](https://github.com/dwash96/cecli/blob/main/aider/website/docs/config/skills.md)
|
|
106
106
|
* [Session Management](https://github.com/dwash96/cecli/blob/main/aider/website/docs/sessions.md)
|
|
107
107
|
* [Custom Commands](https://github.com/dwash96/cecli/blob/main/cecli/website/docs/config/custom-commands.md)
|
|
108
|
+
* [Custom System Prompts](https://github.com/dwash96/cecli/blob/main/cecli/website/docs/config/custom-system-prompts.md)
|
|
108
109
|
* [Custom Tools](https://github.com/dwash96/cecli/blob/main/cecli/website/docs/config/agent-mode.md#creating-custom-tools)
|
|
109
110
|
* [Advanced Model Configuration](https://github.com/dwash96/cecli/blob/main/aider/website/docs/config/model-aliases.md#advanced-model-settings)
|
|
110
111
|
* [Aider Original Documentation (still mostly applies)](https://aider.chat/)
|
|
@@ -120,20 +121,20 @@ This project can be installed using several methods:
|
|
|
120
121
|
|
|
121
122
|
### Package Installation
|
|
122
123
|
```bash
|
|
123
|
-
pip install cecli
|
|
124
|
+
pip install cecli-dev
|
|
124
125
|
```
|
|
125
126
|
|
|
126
127
|
or
|
|
127
128
|
|
|
128
129
|
```bash
|
|
129
|
-
uv pip install --native-tls cecli
|
|
130
|
+
uv pip install --native-tls cecli-dev
|
|
130
131
|
```
|
|
131
132
|
|
|
132
133
|
The package exports a `cecli` command that accepts all of Aider's configuration options
|
|
133
134
|
|
|
134
135
|
### Tool Installation
|
|
135
136
|
```bash
|
|
136
|
-
uv tool install --native-tls --python python3.12 cecli
|
|
137
|
+
uv tool install --native-tls --python python3.12 cecli-dev
|
|
137
138
|
```
|
|
138
139
|
|
|
139
140
|
Use the tool installation so aider doesn't interfere with your development environment
|
|
@@ -22,6 +22,7 @@ LLMs are a part of our lives from here on out so join us in learning about and c
|
|
|
22
22
|
* [Skills](https://github.com/dwash96/cecli/blob/main/aider/website/docs/config/skills.md)
|
|
23
23
|
* [Session Management](https://github.com/dwash96/cecli/blob/main/aider/website/docs/sessions.md)
|
|
24
24
|
* [Custom Commands](https://github.com/dwash96/cecli/blob/main/cecli/website/docs/config/custom-commands.md)
|
|
25
|
+
* [Custom System Prompts](https://github.com/dwash96/cecli/blob/main/cecli/website/docs/config/custom-system-prompts.md)
|
|
25
26
|
* [Custom Tools](https://github.com/dwash96/cecli/blob/main/cecli/website/docs/config/agent-mode.md#creating-custom-tools)
|
|
26
27
|
* [Advanced Model Configuration](https://github.com/dwash96/cecli/blob/main/aider/website/docs/config/model-aliases.md#advanced-model-settings)
|
|
27
28
|
* [Aider Original Documentation (still mostly applies)](https://aider.chat/)
|
|
@@ -37,20 +38,20 @@ This project can be installed using several methods:
|
|
|
37
38
|
|
|
38
39
|
### Package Installation
|
|
39
40
|
```bash
|
|
40
|
-
pip install cecli
|
|
41
|
+
pip install cecli-dev
|
|
41
42
|
```
|
|
42
43
|
|
|
43
44
|
or
|
|
44
45
|
|
|
45
46
|
```bash
|
|
46
|
-
uv pip install --native-tls cecli
|
|
47
|
+
uv pip install --native-tls cecli-dev
|
|
47
48
|
```
|
|
48
49
|
|
|
49
50
|
The package exports a `cecli` command that accepts all of Aider's configuration options
|
|
50
51
|
|
|
51
52
|
### Tool Installation
|
|
52
53
|
```bash
|
|
53
|
-
uv tool install --native-tls --python python3.12 cecli
|
|
54
|
+
uv tool install --native-tls --python python3.12 cecli-dev
|
|
54
55
|
```
|
|
55
56
|
|
|
56
57
|
Use the tool installation so aider doesn't interfere with your development environment
|
|
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
|
|
|
28
28
|
commit_id: COMMIT_ID
|
|
29
29
|
__commit_id__: COMMIT_ID
|
|
30
30
|
|
|
31
|
-
__version__ = version = '0.95.
|
|
32
|
-
__version_tuple__ = version_tuple = (0, 95,
|
|
31
|
+
__version__ = version = '0.95.7'
|
|
32
|
+
__version_tuple__ = version_tuple = (0, 95, 7)
|
|
33
33
|
|
|
34
|
-
__commit_id__ = commit_id = '
|
|
34
|
+
__commit_id__ = commit_id = 'gc8f1f83a5'
|
|
@@ -242,13 +242,34 @@ def get_parser(default_config_files, git_root):
|
|
|
242
242
|
),
|
|
243
243
|
)
|
|
244
244
|
|
|
245
|
+
#######
|
|
246
|
+
group = parser.add_argument_group("Customization Settings")
|
|
247
|
+
group.add_argument(
|
|
248
|
+
"--custom",
|
|
249
|
+
metavar="CUSTOM_JSON",
|
|
250
|
+
help=(
|
|
251
|
+
"Specify cecli customizations configurations (for prompts, commands, etc.) as a JSON"
|
|
252
|
+
" string"
|
|
253
|
+
),
|
|
254
|
+
default=None,
|
|
255
|
+
)
|
|
245
256
|
########
|
|
246
257
|
group = parser.add_argument_group("TUI Settings")
|
|
258
|
+
|
|
259
|
+
env_val = os.environ.get("CECLI_TUI")
|
|
260
|
+
|
|
261
|
+
if env_val is not None and env_val.lower() == "false":
|
|
262
|
+
tui_default = False
|
|
263
|
+
linear_output_default = True
|
|
264
|
+
else:
|
|
265
|
+
tui_default = None
|
|
266
|
+
linear_output_default = None
|
|
267
|
+
|
|
247
268
|
group.add_argument(
|
|
248
269
|
"--tui",
|
|
249
270
|
action=argparse.BooleanOptionalAction,
|
|
250
|
-
default=
|
|
251
|
-
help="Launch Textual TUI interface
|
|
271
|
+
default=tui_default,
|
|
272
|
+
help="Launch Textual TUI interface",
|
|
252
273
|
)
|
|
253
274
|
group.add_argument(
|
|
254
275
|
"--tui-config",
|
|
@@ -803,8 +824,8 @@ def get_parser(default_config_files, git_root):
|
|
|
803
824
|
group.add_argument(
|
|
804
825
|
"--linear-output",
|
|
805
826
|
action=argparse.BooleanOptionalAction,
|
|
806
|
-
help="Run input and output sequentially instead of us simultaneous streams (default:
|
|
807
|
-
default=
|
|
827
|
+
help="Run input and output sequentially instead of us simultaneous streams (default: None)",
|
|
828
|
+
default=linear_output_default,
|
|
808
829
|
)
|
|
809
830
|
group.add_argument(
|
|
810
831
|
"--debug",
|
|
@@ -975,12 +996,6 @@ def get_parser(default_config_files, git_root):
|
|
|
975
996
|
" specified, a default command for your OS may be used."
|
|
976
997
|
),
|
|
977
998
|
)
|
|
978
|
-
group.add_argument(
|
|
979
|
-
"--command-paths",
|
|
980
|
-
help="JSON array of paths to custom commands files",
|
|
981
|
-
action="append",
|
|
982
|
-
default=None,
|
|
983
|
-
)
|
|
984
999
|
group.add_argument(
|
|
985
1000
|
"--command-prefix",
|
|
986
1001
|
default=None,
|
|
@@ -16,6 +16,7 @@ from litellm import experimental_mcp_client
|
|
|
16
16
|
|
|
17
17
|
from cecli import urls, utils
|
|
18
18
|
from cecli.change_tracker import ChangeTracker
|
|
19
|
+
from cecli.helpers import nested
|
|
19
20
|
from cecli.helpers.similarity import (
|
|
20
21
|
cosine_similarity,
|
|
21
22
|
create_bigram_vector,
|
|
@@ -105,50 +106,61 @@ class AgentCoder(Coder):
|
|
|
105
106
|
self.io.tool_warning(f"Failed to parse agent-config JSON: {e}")
|
|
106
107
|
return {}
|
|
107
108
|
|
|
108
|
-
|
|
109
|
-
config
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
config
|
|
113
|
-
|
|
114
|
-
config["tools_includelist"] = []
|
|
115
|
-
if "tools_excludelist" not in config:
|
|
116
|
-
config["tools_excludelist"] = []
|
|
109
|
+
config["large_file_token_threshold"] = nested.getter(
|
|
110
|
+
config, "large_file_token_threshold", 25000
|
|
111
|
+
)
|
|
112
|
+
config["skip_cli_confirmations"] = nested.getter(
|
|
113
|
+
config, "skip_cli_confirmations", nested.getter(config, "yolo", [])
|
|
114
|
+
)
|
|
117
115
|
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
"git_status",
|
|
126
|
-
"symbol_outline",
|
|
127
|
-
"todo_list",
|
|
128
|
-
"skills",
|
|
129
|
-
}
|
|
116
|
+
config["tools_paths"] = nested.getter(config, "tools_paths", [])
|
|
117
|
+
config["tools_includelist"] = nested.getter(
|
|
118
|
+
config, ["tools_includelist", "tools_whitelist"], []
|
|
119
|
+
)
|
|
120
|
+
config["tools_excludelist"] = nested.getter(
|
|
121
|
+
config, ["tools_excludelist", "tools_blacklist"], []
|
|
122
|
+
)
|
|
130
123
|
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
124
|
+
config["include_context_blocks"] = set(
|
|
125
|
+
nested.getter(
|
|
126
|
+
config,
|
|
127
|
+
"include_context_blocks",
|
|
128
|
+
{
|
|
129
|
+
"context_summary",
|
|
130
|
+
"directory_structure",
|
|
131
|
+
"environment_info",
|
|
132
|
+
"git_status",
|
|
133
|
+
"symbol_outline",
|
|
134
|
+
"todo_list",
|
|
135
|
+
"skills",
|
|
136
|
+
},
|
|
137
|
+
)
|
|
138
|
+
)
|
|
139
|
+
config["exclude_context_blocks"] = set(nested.getter(config, "exclude_context_blocks", []))
|
|
137
140
|
|
|
138
141
|
self.large_file_token_threshold = config["large_file_token_threshold"]
|
|
139
|
-
self.skip_cli_confirmations = config
|
|
140
|
-
|
|
141
|
-
|
|
142
|
+
self.skip_cli_confirmations = config["skip_cli_confirmations"]
|
|
143
|
+
|
|
144
|
+
self.allowed_context_blocks = config["include_context_blocks"]
|
|
145
|
+
|
|
146
|
+
for context_block in config["exclude_context_blocks"]:
|
|
147
|
+
try:
|
|
148
|
+
self.allowed_context_blocks.remove(context_block)
|
|
149
|
+
except KeyError:
|
|
150
|
+
pass
|
|
142
151
|
|
|
143
152
|
if "skills" in self.allowed_context_blocks:
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
config["skills_excludelist"]
|
|
150
|
-
|
|
151
|
-
|
|
153
|
+
config["skills_paths"] = nested.getter(config, "skills_paths", [])
|
|
154
|
+
config["skills_includelist"] = nested.getter(
|
|
155
|
+
config, ["skills_includelist", "skills_whitelist"], []
|
|
156
|
+
)
|
|
157
|
+
config["skills_excludelist"] = nested.getter(
|
|
158
|
+
config, ["skills_excludelist", "skills_blacklist"], []
|
|
159
|
+
)
|
|
160
|
+
|
|
161
|
+
if "skills" not in self.allowed_context_blocks or not nested.getter(
|
|
162
|
+
config, "skills_paths", []
|
|
163
|
+
):
|
|
152
164
|
config["tools_excludelist"].append("loadskill")
|
|
153
165
|
config["tools_excludelist"].append("removeskill")
|
|
154
166
|
|
|
@@ -38,7 +38,7 @@ import cecli.prompts.utils.system as prompts
|
|
|
38
38
|
from cecli import __version__, models, urls, utils
|
|
39
39
|
from cecli.commands import Commands, SwitchCoderSignal
|
|
40
40
|
from cecli.exceptions import LiteLLMExceptions
|
|
41
|
-
from cecli.helpers import coroutines
|
|
41
|
+
from cecli.helpers import coroutines, nested
|
|
42
42
|
from cecli.helpers.profiler import TokenProfiler
|
|
43
43
|
from cecli.history import ChatSummary
|
|
44
44
|
from cecli.io import ConfirmGroup, InputOutput
|
|
@@ -61,7 +61,7 @@ from cecli.tools.utils.registry import ToolRegistry
|
|
|
61
61
|
from cecli.utils import format_tokens, is_image_file
|
|
62
62
|
|
|
63
63
|
from ..dump import dump # noqa: F401
|
|
64
|
-
from ..prompts.utils.
|
|
64
|
+
from ..prompts.utils.registry import PromptObject, PromptRegistry
|
|
65
65
|
from .chat_chunks import ChatChunks
|
|
66
66
|
|
|
67
67
|
|
|
@@ -564,6 +564,29 @@ class Coder:
|
|
|
564
564
|
except Exception as e:
|
|
565
565
|
self.io.tool_warning(f"Could not remove todo list file {todo_file_path}: {e}")
|
|
566
566
|
|
|
567
|
+
customizations = dict()
|
|
568
|
+
try:
|
|
569
|
+
if self.args:
|
|
570
|
+
customizations = nested.getter(self.args, "custom", "{}")
|
|
571
|
+
customizations = json.loads(customizations)
|
|
572
|
+
except (json.JSONDecodeError, TypeError):
|
|
573
|
+
customizations = dict()
|
|
574
|
+
pass
|
|
575
|
+
|
|
576
|
+
self.custom = customizations
|
|
577
|
+
|
|
578
|
+
if nested.getter(self.custom, "prompt_map.all", None):
|
|
579
|
+
prompts = PromptRegistry.get_prompt(nested.getter(self.custom, "prompt_map.all"))
|
|
580
|
+
prompt_obj = PromptObject(prompts)
|
|
581
|
+
Coder._prompt_cache[self.prompt_format] = prompt_obj
|
|
582
|
+
|
|
583
|
+
if nested.getter(self.custom, f"prompt_map.{self.prompt_format}", None):
|
|
584
|
+
prompts = PromptRegistry.get_prompt(
|
|
585
|
+
nested.getter(self.custom, f"prompt_map.{self.prompt_format}")
|
|
586
|
+
)
|
|
587
|
+
prompt_obj = PromptObject(prompts)
|
|
588
|
+
Coder._prompt_cache[self.prompt_format] = prompt_obj
|
|
589
|
+
|
|
567
590
|
# validate the functions jsonschema
|
|
568
591
|
if self.functions:
|
|
569
592
|
from jsonschema import Draft7Validator
|
|
@@ -600,14 +623,7 @@ class Coder:
|
|
|
600
623
|
return Coder._prompt_cache[prompt_name]
|
|
601
624
|
|
|
602
625
|
# Get prompts from registry
|
|
603
|
-
prompts =
|
|
604
|
-
|
|
605
|
-
# Create a simple object that allows attribute access
|
|
606
|
-
class PromptObject:
|
|
607
|
-
def __init__(self, prompts_dict):
|
|
608
|
-
for key, value in prompts_dict.items():
|
|
609
|
-
setattr(self, key, value)
|
|
610
|
-
|
|
626
|
+
prompts = PromptRegistry.get_prompt(prompt_name)
|
|
611
627
|
# Cache the prompt object
|
|
612
628
|
prompt_obj = PromptObject(prompts)
|
|
613
629
|
Coder._prompt_cache[prompt_name] = prompt_obj
|
|
@@ -5,7 +5,7 @@ import sys
|
|
|
5
5
|
from pathlib import Path
|
|
6
6
|
|
|
7
7
|
from cecli.commands.utils.registry import CommandRegistry
|
|
8
|
-
from cecli.helpers import plugin_manager
|
|
8
|
+
from cecli.helpers import nested, plugin_manager
|
|
9
9
|
from cecli.helpers.file_searcher import handle_core_files
|
|
10
10
|
from cecli.repo import ANY_GIT_ERROR
|
|
11
11
|
|
|
@@ -80,13 +80,16 @@ class Commands:
|
|
|
80
80
|
self.editor = editor
|
|
81
81
|
self.original_read_only_fnames = set(original_read_only_fnames or [])
|
|
82
82
|
|
|
83
|
+
customizations = dict()
|
|
83
84
|
try:
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
85
|
+
if self.args:
|
|
86
|
+
customizations = nested.getter(self.args, "custom", "{}")
|
|
87
|
+
customizations = json.loads(customizations)
|
|
88
|
+
except (json.JSONDecodeError, TypeError):
|
|
89
|
+
customizations = dict()
|
|
90
|
+
pass
|
|
91
|
+
|
|
92
|
+
self.custom_commands = nested.getter(customizations, "command-paths", [])
|
|
90
93
|
self._load_custom_commands(self.custom_commands)
|
|
91
94
|
|
|
92
95
|
self.cmd_running_event = asyncio.Event()
|
|
@@ -439,6 +439,40 @@ class ModelProviderManager:
|
|
|
439
439
|
fname = f"{provider}_models.json"
|
|
440
440
|
return self.cache_dir / fname
|
|
441
441
|
|
|
442
|
+
def _normalize_models_payload(self, provider: str, payload: Dict) -> Dict:
|
|
443
|
+
"""Normalize provider payloads into an OpenAI-style `{data: [{id: ...}]}`."""
|
|
444
|
+
if not isinstance(payload, dict):
|
|
445
|
+
return {}
|
|
446
|
+
if "data" in payload and isinstance(payload.get("data"), list):
|
|
447
|
+
return payload
|
|
448
|
+
# Fireworks returns `{models: [...], nextPageToken: ..., totalSize: ...}`
|
|
449
|
+
models = payload.get("models")
|
|
450
|
+
if isinstance(models, list):
|
|
451
|
+
normalized = []
|
|
452
|
+
for item in models:
|
|
453
|
+
if not isinstance(item, dict):
|
|
454
|
+
continue
|
|
455
|
+
model_id = item.get("name") or item.get("id")
|
|
456
|
+
if not model_id:
|
|
457
|
+
continue
|
|
458
|
+
record = {"id": model_id}
|
|
459
|
+
for key in (
|
|
460
|
+
"max_input_tokens",
|
|
461
|
+
"max_output_tokens",
|
|
462
|
+
"max_tokens",
|
|
463
|
+
"context_length",
|
|
464
|
+
"context_window",
|
|
465
|
+
"mode",
|
|
466
|
+
"pricing",
|
|
467
|
+
"input_cost_per_token",
|
|
468
|
+
"output_cost_per_token",
|
|
469
|
+
):
|
|
470
|
+
if key in item and item[key] is not None:
|
|
471
|
+
record[key] = item[key]
|
|
472
|
+
normalized.append(record)
|
|
473
|
+
return {"data": normalized}
|
|
474
|
+
return {}
|
|
475
|
+
|
|
442
476
|
def _load_cache(self, provider: str) -> None:
|
|
443
477
|
if self._cache_loaded.get(provider):
|
|
444
478
|
return
|
|
@@ -460,9 +494,10 @@ class ModelProviderManager:
|
|
|
460
494
|
payload = self._fetch_provider_models(provider)
|
|
461
495
|
cache_file = self._get_cache_file(provider)
|
|
462
496
|
if payload:
|
|
463
|
-
self.
|
|
497
|
+
normalized = self._normalize_models_payload(provider, payload)
|
|
498
|
+
self._provider_cache[provider] = normalized
|
|
464
499
|
try:
|
|
465
|
-
cache_file.write_text(json.dumps(
|
|
500
|
+
cache_file.write_text(json.dumps(normalized, indent=2))
|
|
466
501
|
except OSError:
|
|
467
502
|
pass
|
|
468
503
|
return
|
|
@@ -479,6 +514,13 @@ class ModelProviderManager:
|
|
|
479
514
|
models_url = api_base.rstrip("/") + "/models"
|
|
480
515
|
if not models_url:
|
|
481
516
|
return None
|
|
517
|
+
# Substitute {account_id} placeholder if present
|
|
518
|
+
if "{account_id}" in models_url:
|
|
519
|
+
account_id = self._get_account_id(provider)
|
|
520
|
+
if not account_id:
|
|
521
|
+
print(f"Failed to fetch {provider} model list: account_id_env not set")
|
|
522
|
+
return None
|
|
523
|
+
models_url = models_url.replace("{account_id}", account_id)
|
|
482
524
|
headers = {}
|
|
483
525
|
default_headers = config.get("default_headers") or {}
|
|
484
526
|
headers.update(default_headers)
|
|
@@ -509,6 +551,13 @@ class ModelProviderManager:
|
|
|
509
551
|
return value
|
|
510
552
|
return None
|
|
511
553
|
|
|
554
|
+
def _get_account_id(self, provider: str) -> Optional[str]:
|
|
555
|
+
config = self.provider_configs[provider]
|
|
556
|
+
account_id_env = config.get("account_id_env")
|
|
557
|
+
if account_id_env:
|
|
558
|
+
return os.environ.get(account_id_env)
|
|
559
|
+
return None
|
|
560
|
+
|
|
512
561
|
|
|
513
562
|
def ensure_litellm_providers_registered() -> None:
|
|
514
563
|
"""One-time registration guard for LiteLLM provider metadata."""
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
from typing import Any, Dict, List, Union
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
def arg_resolver(obj: Union[List[Any], Dict[str, Any], Any], key: str, default: Any = None) -> Any:
|
|
5
|
+
"""
|
|
6
|
+
Resolves a single key or index from an object with dash/underscore flexibility.
|
|
7
|
+
"""
|
|
8
|
+
# 1. Handle List/Sequence access
|
|
9
|
+
if isinstance(obj, (list, tuple)):
|
|
10
|
+
if str(key).isdigit():
|
|
11
|
+
idx = int(key)
|
|
12
|
+
return obj[idx] if idx < len(obj) else default
|
|
13
|
+
return default
|
|
14
|
+
|
|
15
|
+
# 2. Handle Dict access
|
|
16
|
+
if isinstance(obj, dict):
|
|
17
|
+
if key in obj:
|
|
18
|
+
return obj[key]
|
|
19
|
+
# Test underscore and hyphen versions directly
|
|
20
|
+
key_str = str(key)
|
|
21
|
+
# Check underscore version
|
|
22
|
+
if "-" in key_str:
|
|
23
|
+
underscore_key = key_str.replace("-", "_")
|
|
24
|
+
if underscore_key in obj:
|
|
25
|
+
return obj[underscore_key]
|
|
26
|
+
# Check hyphen version
|
|
27
|
+
if "_" in key_str:
|
|
28
|
+
hyphen_key = key_str.replace("_", "-")
|
|
29
|
+
if hyphen_key in obj:
|
|
30
|
+
return obj[hyphen_key]
|
|
31
|
+
return default
|
|
32
|
+
|
|
33
|
+
# 3. Handle Object attribute access
|
|
34
|
+
if hasattr(obj, "__dict__") or hasattr(obj, "__slots__"):
|
|
35
|
+
if hasattr(obj, str(key)):
|
|
36
|
+
return getattr(obj, key)
|
|
37
|
+
# Test underscore and hyphen versions directly
|
|
38
|
+
key_str = str(key)
|
|
39
|
+
# Check underscore version
|
|
40
|
+
if "-" in key_str:
|
|
41
|
+
underscore_key = key_str.replace("-", "_")
|
|
42
|
+
if hasattr(obj, underscore_key):
|
|
43
|
+
return getattr(obj, underscore_key)
|
|
44
|
+
# Check hyphen version
|
|
45
|
+
if "_" in key_str:
|
|
46
|
+
hyphen_key = key_str.replace("_", "-")
|
|
47
|
+
if hasattr(obj, hyphen_key):
|
|
48
|
+
return getattr(obj, hyphen_key)
|
|
49
|
+
return default
|
|
50
|
+
|
|
51
|
+
return default
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
def getter(
|
|
55
|
+
data: Union[List[Any], Dict[str, Any], Any], path: Union[str, List[str]], default: Any = None
|
|
56
|
+
) -> Any:
|
|
57
|
+
"""Safely access nested dicts and lists using normalized dot-notation."""
|
|
58
|
+
|
|
59
|
+
if data is None:
|
|
60
|
+
return default
|
|
61
|
+
|
|
62
|
+
# Handle single path string
|
|
63
|
+
if isinstance(path, str):
|
|
64
|
+
paths = [path]
|
|
65
|
+
else:
|
|
66
|
+
paths = path
|
|
67
|
+
|
|
68
|
+
# Try each path, return first valid result
|
|
69
|
+
for path_str in paths:
|
|
70
|
+
current = data
|
|
71
|
+
parts = path_str.split(".")
|
|
72
|
+
found = True
|
|
73
|
+
|
|
74
|
+
for part in parts:
|
|
75
|
+
current = arg_resolver(current, part, default=default)
|
|
76
|
+
if current is default:
|
|
77
|
+
found = False
|
|
78
|
+
break
|
|
79
|
+
|
|
80
|
+
if found:
|
|
81
|
+
return current
|
|
82
|
+
|
|
83
|
+
return default
|
|
@@ -40,6 +40,7 @@ from rich.spinner import SPINNERS
|
|
|
40
40
|
from rich.style import Style as RichStyle
|
|
41
41
|
from rich.text import Text
|
|
42
42
|
|
|
43
|
+
from cecli.commands import SwitchCoderSignal
|
|
43
44
|
from cecli.helpers import coroutines
|
|
44
45
|
|
|
45
46
|
from .dump import dump # noqa: F401
|
|
@@ -1025,6 +1026,7 @@ class InputOutput:
|
|
|
1025
1026
|
IndexError,
|
|
1026
1027
|
RuntimeError,
|
|
1027
1028
|
SystemExit,
|
|
1029
|
+
SwitchCoderSignal,
|
|
1028
1030
|
):
|
|
1029
1031
|
pass
|
|
1030
1032
|
|
|
@@ -1042,6 +1044,7 @@ class InputOutput:
|
|
|
1042
1044
|
IndexError,
|
|
1043
1045
|
RuntimeError,
|
|
1044
1046
|
SystemExit,
|
|
1047
|
+
SwitchCoderSignal,
|
|
1045
1048
|
):
|
|
1046
1049
|
pass
|
|
1047
1050
|
|
|
@@ -554,8 +554,8 @@ async def main_async(argv=None, input=None, output=None, force_git_root=None, re
|
|
|
554
554
|
args.tui_config = convert_yaml_to_json_string(args.tui_config)
|
|
555
555
|
if hasattr(args, "mcp_servers") and args.mcp_servers is not None:
|
|
556
556
|
args.mcp_servers = convert_yaml_to_json_string(args.mcp_servers)
|
|
557
|
-
if hasattr(args, "
|
|
558
|
-
args.
|
|
557
|
+
if hasattr(args, "custom") and args.custom is not None:
|
|
558
|
+
args.custom = convert_yaml_to_json_string(args.custom)
|
|
559
559
|
if args.debug:
|
|
560
560
|
global log_file
|
|
561
561
|
os.makedirs(".cecli/logs/", exist_ok=True)
|
|
@@ -628,7 +628,7 @@ async def main_async(argv=None, input=None, output=None, force_git_root=None, re
|
|
|
628
628
|
output_queue = None
|
|
629
629
|
input_queue = None
|
|
630
630
|
pre_init_io = get_io(args.pretty)
|
|
631
|
-
if args.tui or args.
|
|
631
|
+
if args.tui or args.linear_output is None:
|
|
632
632
|
try:
|
|
633
633
|
from cecli.tui import create_tui_io
|
|
634
634
|
|
|
@@ -643,6 +643,9 @@ async def main_async(argv=None, input=None, output=None, force_git_root=None, re
|
|
|
643
643
|
sys.exit(1)
|
|
644
644
|
else:
|
|
645
645
|
io = pre_init_io
|
|
646
|
+
if args.linear_output is None:
|
|
647
|
+
args.linear_output = True
|
|
648
|
+
|
|
646
649
|
if not args.tui:
|
|
647
650
|
try:
|
|
648
651
|
io.rule()
|