cecli-dev 0.99.11__tar.gz → 0.100.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-0.99.11 → cecli_dev-0.100.0}/.github/workflows/release.yml +1 -1
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/PKG-INFO +9 -8
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/README.md +6 -5
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/__init__.py +1 -1
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/_version.py +3 -3
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/args.py +1 -1
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/coders/__init__.py +2 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/coders/agent_coder.py +137 -18
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/coders/base_coder.py +341 -157
- cecli_dev-0.100.0/cecli/coders/sub_agent_coder.py +23 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/commands/__init__.py +16 -1
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/commands/add.py +1 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/commands/agent_model.py +1 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/commands/clear.py +3 -1
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/commands/context_blocks.py +1 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/commands/context_management.py +1 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/commands/copy.py +1 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/commands/copy_context.py +1 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/commands/core.py +22 -12
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/commands/diff.py +1 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/commands/drop.py +1 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/commands/editor.py +1 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/commands/editor_model.py +1 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/commands/exclude_skill.py +1 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/commands/exit.py +1 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/commands/hooks.py +3 -2
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/commands/include_skill.py +1 -0
- cecli_dev-0.100.0/cecli/commands/invoke_agent.py +54 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/commands/lint.py +1 -1
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/commands/list_sessions.py +1 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/commands/list_skills.py +1 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/commands/load.py +1 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/commands/load_hook.py +4 -3
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/commands/load_mcp.py +1 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/commands/load_session.py +1 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/commands/load_skill.py +1 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/commands/ls.py +4 -3
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/commands/map.py +1 -0
- cecli_dev-0.100.0/cecli/commands/merge.py +194 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/commands/model.py +1 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/commands/models.py +1 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/commands/paste.py +1 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/commands/read_only.py +1 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/commands/read_only_stub.py +1 -0
- cecli_dev-0.100.0/cecli/commands/reap_agent.py +67 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/commands/remove_hook.py +4 -3
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/commands/remove_mcp.py +1 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/commands/remove_skill.py +1 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/commands/reset.py +3 -1
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/commands/run.py +3 -5
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/commands/save.py +1 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/commands/save_session.py +1 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/commands/settings.py +1 -0
- cecli_dev-0.100.0/cecli/commands/spawn_agent.py +42 -0
- cecli_dev-0.100.0/cecli/commands/switch_agent.py +122 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/commands/think_tokens.py +1 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/commands/tokens.py +1 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/commands/undo.py +1 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/commands/utils/base_command.py +1 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/commands/voice.py +1 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/commands/weak_model.py +1 -0
- cecli_dev-0.100.0/cecli/helpers/agents/__init__.py +7 -0
- cecli_dev-0.100.0/cecli/helpers/agents/config.py +84 -0
- cecli_dev-0.100.0/cecli/helpers/agents/service.py +551 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/helpers/conversation/files.py +29 -11
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/helpers/conversation/integration.py +69 -13
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/helpers/conversation/manager.py +29 -11
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/helpers/conversation/service.py +1 -2
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/helpers/coroutines.py +38 -0
- cecli_dev-0.100.0/cecli/helpers/io_proxy.py +256 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/helpers/leak_detect.py +42 -0
- cecli_dev-0.99.11/cecli/helpers/observations/manager.py → cecli_dev-0.100.0/cecli/helpers/observations/service.py +56 -19
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/helpers/skills.py +27 -3
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/hooks/__init__.py +2 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/hooks/integration.py +28 -14
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/hooks/manager.py +56 -88
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/hooks/registry.py +62 -5
- cecli_dev-0.100.0/cecli/hooks/service.py +65 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/io.py +30 -20
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/linter.py +36 -36
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/main.py +33 -25
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/models.py +25 -1
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/prompts/agent.yml +1 -1
- cecli_dev-0.100.0/cecli/prompts/subagent.yml +62 -0
- cecli_dev-0.100.0/cecli/queries/tree-sitter-language-pack/bash-tags.scm +8 -0
- cecli_dev-0.100.0/cecli/queries/tree-sitter-languages/bash-tags.scm +8 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/repomap.py +30 -7
- cecli_dev-0.100.0/cecli/run_cmd.py +284 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/sessions.py +2 -2
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/tools/__init__.py +2 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/tools/command.py +5 -3
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/tools/context_manager.py +52 -7
- cecli_dev-0.100.0/cecli/tools/delegate.py +125 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/tools/edit_text.py +3 -3
- cecli_dev-0.100.0/cecli/tools/finished.py +86 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/tools/load_skill.py +1 -4
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/tools/read_range.py +119 -31
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/tools/remove_skill.py +1 -4
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/tools/thinking.py +2 -2
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/tools/utils/base_tool.py +2 -2
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/tools/utils/registry.py +11 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/tui/app.py +430 -49
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/tui/io.py +185 -55
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/tui/styles.tcss +2 -1
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/tui/widgets/__init__.py +2 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/tui/widgets/file_list.py +12 -2
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/tui/widgets/footer.py +61 -4
- cecli_dev-0.100.0/cecli/tui/widgets/input_container.py +139 -0
- cecli_dev-0.100.0/cecli/tui/widgets/subagent_pills.py +164 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/tui/worker.py +33 -7
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/docs/config/agent-mode.md +28 -28
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/docs/config/hooks.md +11 -1
- cecli_dev-0.100.0/cecli/website/docs/config/subagents.md +241 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/docs/usage/commands.md +1 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli_dev.egg-info/PKG-INFO +9 -8
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli_dev.egg-info/SOURCES.txt +32 -2
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli_dev.egg-info/requires.txt +4 -3
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/pyproject.toml +0 -1
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/pytest.ini +1 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/requirements/common-constraints.txt +3 -1
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/requirements/requirements-dev.in +2 -1
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/requirements/requirements-dev.txt +25 -9
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/requirements/requirements-help.txt +20 -18
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/requirements/requirements-playwright.txt +1 -1
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/scripts/pip-compile.sh +1 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/basic/test_coder.py +17 -9
- cecli_dev-0.100.0/tests/basic/test_linter.py +74 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/basic/test_models.py +52 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/basic/test_reasoning.py +4 -4
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/basic/test_repomap.py +3 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/basic/test_run_cmd.py +2 -2
- cecli_dev-0.100.0/tests/coders/test_coder_switching.py +74 -0
- cecli_dev-0.100.0/tests/commands/test_compaction.py +105 -0
- cecli_dev-0.100.0/tests/commands/test_switch_agent.py +104 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/conversations/test_conversation_integration.py +1 -1
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/conversations/test_conversation_system.py +1 -1
- cecli_dev-0.100.0/tests/fixtures/languages/bash/test.sh +19 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/helpers/monorepo/test_repomap_workspace.py +4 -0
- cecli_dev-0.99.11/tests/helpers/observations/test_observation_manager.py → cecli_dev-0.100.0/tests/helpers/observations/test_observation_service.py +7 -9
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/hooks/test_manager.py +116 -83
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/hooks/test_registry.py +25 -13
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/scrape/test_playwright_disable.py +2 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/scrape/test_scrape.py +2 -0
- cecli_dev-0.100.0/tests/subagents/__init__.py +0 -0
- cecli_dev-0.100.0/tests/subagents/conftest.py +60 -0
- cecli_dev-0.100.0/tests/subagents/test_commands.py +238 -0
- cecli_dev-0.100.0/tests/subagents/test_config.py +109 -0
- cecli_dev-0.100.0/tests/subagents/test_delegate.py +124 -0
- cecli_dev-0.100.0/tests/subagents/test_finished.py +109 -0
- cecli_dev-0.100.0/tests/subagents/test_io_proxy.py +187 -0
- cecli_dev-0.100.0/tests/subagents/test_service.py +653 -0
- cecli_dev-0.100.0/tests/subagents/test_sub_agent_coder.py +153 -0
- cecli_dev-0.99.11/cecli/run_cmd.py +0 -143
- cecli_dev-0.99.11/cecli/tools/finished.py +0 -41
- cecli_dev-0.99.11/cecli/tui/widgets/input_container.py +0 -24
- cecli_dev-0.99.11/tests/basic/test_linter.py +0 -92
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/.dockerignore +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/.flake8 +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/.gitattributes +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/.github/ISSUE_TEMPLATE/issue.yml +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/.github/workflows/check_pypi_version.yml +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/.github/workflows/docker-build-test.yml +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/.github/workflows/docker-release.yml +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/.github/workflows/issues.yml +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/.github/workflows/pages.yml +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/.github/workflows/pre-commit.yml +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/.github/workflows/ubuntu-tests.yml +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/.github/workflows/windows-tests.yml +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/.github/workflows/windows_check_pypi_version.yml +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/.gitignore +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/.pre-commit-config.yaml +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/CHANGELOG.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/CNAME +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/CONTRIBUTING.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/HISTORY.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/LICENSE.txt +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/MANIFEST.in +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/benchmark/Dockerfile +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/benchmark/README.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/benchmark/__init__.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/benchmark/benchmark.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/benchmark/benchmark_classic.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/benchmark/clone-exercism.sh +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/benchmark/cpp-test.sh +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/benchmark/docker.sh +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/benchmark/docker_build.sh +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/benchmark/install-docker-ubuntu.sh +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/benchmark/npm-test.sh +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/benchmark/over_time.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/benchmark/plot.sh +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/benchmark/plots.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/benchmark/problem_stats.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/benchmark/prompts.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/benchmark/refactor_tools.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/benchmark/rsync.sh +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/benchmark/rungrid.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/benchmark/swe-bench-lite.txt +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/benchmark/swe-bench.txt +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/benchmark/swe_bench.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/benchmark/test_benchmark.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/benchmark/variations.1.sh +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/benchmark/variations.2.sh +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/benchmark/variations.3.sh +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/benchmark/variations.4.sh +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/__main__.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/args_formatter.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/change_tracker.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/coders/architect_coder.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/coders/ask_coder.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/coders/chat_chunks.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/coders/context_coder.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/coders/copypaste_coder.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/coders/editblock_coder.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/coders/editblock_fenced_coder.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/coders/editblock_func_coder.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/coders/editor_diff_fenced_coder.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/coders/editor_editblock_coder.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/coders/editor_whole_coder.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/coders/hashline_coder.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/coders/help_coder.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/coders/patch_coder.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/coders/search_replace.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/coders/shell.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/coders/single_wholefile_func_coder.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/coders/udiff_coder.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/coders/udiff_simple.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/coders/wholefile_coder.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/coders/wholefile_func_coder.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/commands/agent.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/commands/architect.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/commands/ask.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/commands/chat_mode.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/commands/code.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/commands/command_prefix.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/commands/commit.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/commands/compact.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/commands/context.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/commands/git.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/commands/hashline.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/commands/help.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/commands/history_search.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/commands/map_refresh.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/commands/multiline_mode.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/commands/quit.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/commands/reasoning_effort.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/commands/report.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/commands/rules.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/commands/terminal_data/linux.keytab +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/commands/terminal_setup.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/commands/test.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/commands/utils/__init__.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/commands/utils/helpers.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/commands/utils/registry.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/commands/utils/save_load_manager.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/commands/web.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/commands/workspace.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/deprecated_args.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/diffs.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/dump.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/editor.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/exceptions.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/format_settings.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/help.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/help_pats.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/helpers/__init__.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/helpers/background_commands.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/helpers/command_parser.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/helpers/conversation/__init__.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/helpers/conversation/base_message.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/helpers/conversation/tags.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/helpers/conversation/utils.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/helpers/copypaste.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/helpers/file_searcher.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/helpers/grep_ast/__init__.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/helpers/grep_ast/dump.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/helpers/grep_ast/grep_ast.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/helpers/grep_ast/main.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/helpers/grep_ast/parsers.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/helpers/grep_ast/tsl.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/helpers/hashline.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/helpers/hashpos/__init__.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/helpers/hashpos/hashpos.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/helpers/model_providers.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/helpers/monorepo/__init__.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/helpers/monorepo/config.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/helpers/monorepo/project.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/helpers/monorepo/workspace.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/helpers/monorepo/worktree.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/helpers/nested.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/helpers/observations/__init__.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/helpers/plugin_manager.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/helpers/profiler.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/helpers/requests.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/helpers/responses.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/helpers/similarity.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/history.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/hooks/base.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/hooks/types.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/interruptible_input.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/llm.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/mcp/__init__.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/mcp/manager.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/mcp/oauth.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/mcp/server.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/mcp/utils.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/mdstream.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/onboarding.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/prompts/__init__.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/prompts/architect.yml +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/prompts/ask.yml +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/prompts/base.yml +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/prompts/context.yml +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/prompts/copypaste.yml +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/prompts/editblock.yml +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/prompts/editblock_fenced.yml +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/prompts/editblock_func.yml +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/prompts/editor_diff_fenced.yml +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/prompts/editor_editblock.yml +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/prompts/editor_whole.yml +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/prompts/hashline.yml +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/prompts/help.yml +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/prompts/patch.yml +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/prompts/single_wholefile_func.yml +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/prompts/udiff.yml +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/prompts/udiff_simple.yml +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/prompts/utils/__init__.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/prompts/utils/registry.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/prompts/utils/system.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/prompts/wholefile.yml +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/prompts/wholefile_func.yml +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/queries/tree-sitter-language-pack/README.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/queries/tree-sitter-language-pack/arduino-tags.scm +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/queries/tree-sitter-language-pack/c-tags.scm +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/queries/tree-sitter-language-pack/chatito-tags.scm +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/queries/tree-sitter-language-pack/clojure-tags.scm +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/queries/tree-sitter-language-pack/commonlisp-tags.scm +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/queries/tree-sitter-language-pack/cpp-tags.scm +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/queries/tree-sitter-language-pack/csharp-tags.scm +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/queries/tree-sitter-language-pack/d-tags.scm +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/queries/tree-sitter-language-pack/dart-tags.scm +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/queries/tree-sitter-language-pack/elisp-tags.scm +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/queries/tree-sitter-language-pack/elixir-tags.scm +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/queries/tree-sitter-language-pack/elm-tags.scm +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/queries/tree-sitter-language-pack/gleam-tags.scm +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/queries/tree-sitter-language-pack/go-tags.scm +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/queries/tree-sitter-language-pack/java-tags.scm +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/queries/tree-sitter-language-pack/javascript-tags.scm +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/queries/tree-sitter-language-pack/lua-tags.scm +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/queries/tree-sitter-language-pack/matlab-tags.scm +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/queries/tree-sitter-language-pack/ocaml-tags.scm +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/queries/tree-sitter-language-pack/ocaml_interface-tags.scm +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/queries/tree-sitter-language-pack/pony-tags.scm +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/queries/tree-sitter-language-pack/properties-tags.scm +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/queries/tree-sitter-language-pack/python-tags.scm +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/queries/tree-sitter-language-pack/r-tags.scm +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/queries/tree-sitter-language-pack/racket-tags.scm +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/queries/tree-sitter-language-pack/ruby-tags.scm +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/queries/tree-sitter-language-pack/rust-tags.scm +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/queries/tree-sitter-language-pack/solidity-tags.scm +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/queries/tree-sitter-language-pack/swift-tags.scm +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/queries/tree-sitter-language-pack/udev-tags.scm +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/queries/tree-sitter-languages/README.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/queries/tree-sitter-languages/c-tags.scm +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/queries/tree-sitter-languages/c_sharp-tags.scm +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/queries/tree-sitter-languages/cpp-tags.scm +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/queries/tree-sitter-languages/dart-tags.scm +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/queries/tree-sitter-languages/elisp-tags.scm +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/queries/tree-sitter-languages/elixir-tags.scm +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/queries/tree-sitter-languages/elm-tags.scm +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/queries/tree-sitter-languages/fortran-tags.scm +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/queries/tree-sitter-languages/go-tags.scm +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/queries/tree-sitter-languages/haskell-tags.scm +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/queries/tree-sitter-languages/hcl-tags.scm +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/queries/tree-sitter-languages/java-tags.scm +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/queries/tree-sitter-languages/javascript-tags.scm +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/queries/tree-sitter-languages/julia-tags.scm +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/queries/tree-sitter-languages/kotlin-tags.scm +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/queries/tree-sitter-languages/matlab-tags.scm +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/queries/tree-sitter-languages/ocaml-tags.scm +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/queries/tree-sitter-languages/ocaml_interface-tags.scm +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/queries/tree-sitter-languages/php-tags.scm +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/queries/tree-sitter-languages/python-tags.scm +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/queries/tree-sitter-languages/ql-tags.scm +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/queries/tree-sitter-languages/ruby-tags.scm +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/queries/tree-sitter-languages/rust-tags.scm +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/queries/tree-sitter-languages/scala-tags.scm +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/queries/tree-sitter-languages/typescript-tags.scm +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/queries/tree-sitter-languages/zig-tags.scm +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/reasoning_tags.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/repo.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/report.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/resources/__init__.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/resources/model-metadata.json +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/resources/model-settings.yml +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/resources/providers.json +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/scrape.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/sendchat.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/special.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/tools/command_interactive.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/tools/explore_code.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/tools/git_branch.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/tools/git_diff.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/tools/git_log.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/tools/git_remote.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/tools/git_show.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/tools/git_status.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/tools/grep.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/tools/ls.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/tools/undo_change.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/tools/update_todo_list.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/tools/utils/helpers.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/tools/utils/output.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/tui/__init__.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/tui/widgets/completion_bar.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/tui/widgets/input_area.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/tui/widgets/key_hints.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/tui/widgets/output.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/tui/widgets/status_bar.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/urls.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/utils.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/versioncheck.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/voice.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/waiting.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/watch.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/watch_prompts.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/Gemfile +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/_includes/blame.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/_includes/get-started.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/_includes/help-tip.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/_includes/help.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/_includes/install.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/_includes/keys.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/_includes/model-warnings.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/_includes/multi-line.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/_includes/python-m-aider.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/_includes/recording.css +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/_includes/recording.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/_includes/works-best.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/_sass/_features.scss +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/_sass/_footer.scss +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/_sass/_hero.scss +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/_sass/_info.scss +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/_sass/_layout.scss +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/_sass/_reset.scss +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/_sass/_testimonials.scss +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/_sass/_typography.scss +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/_sass/_variables.scss +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/_sass/custom/custom.scss +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/_sass/global-overrides.scss +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/docs/config/adv-model-settings.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/docs/config/aider_conf.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/docs/config/api-keys.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/docs/config/custom-commands.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/docs/config/custom-system-prompts.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/docs/config/dotenv.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/docs/config/editor.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/docs/config/mcp.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/docs/config/model-aliases.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/docs/config/options.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/docs/config/reasoning.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/docs/config/security.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/docs/config/skills.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/docs/config/tui.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/docs/config/workspaces.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/docs/config.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/docs/faq.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/docs/git.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/docs/index.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/docs/install/docker.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/docs/install/optional.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/docs/install.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/docs/languages.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/docs/legal/contributor-agreement.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/docs/legal/privacy.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/docs/llms/anthropic.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/docs/llms/azure.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/docs/llms/bedrock.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/docs/llms/cohere.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/docs/llms/deepseek.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/docs/llms/gemini.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/docs/llms/github.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/docs/llms/groq.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/docs/llms/lm-studio.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/docs/llms/ollama.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/docs/llms/openai-compat.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/docs/llms/openai.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/docs/llms/openrouter.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/docs/llms/other.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/docs/llms/vertex.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/docs/llms/warnings.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/docs/llms/xai.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/docs/llms.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/docs/more/analytics.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/docs/more/edit-formats.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/docs/more/infinite-output.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/docs/more-info.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/docs/repomap.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/docs/scripting.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/docs/troubleshooting/cecli-not-found.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/docs/troubleshooting/edit-errors.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/docs/troubleshooting/imports.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/docs/troubleshooting/models-and-keys.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/docs/troubleshooting/support.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/docs/troubleshooting/token-limits.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/docs/troubleshooting/warnings.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/docs/troubleshooting.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/docs/usage/conventions.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/docs/usage/copypaste.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/docs/usage/images-urls.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/docs/usage/lint-test.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/docs/usage/modes.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/docs/usage/not-code.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/docs/usage/notifications.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/docs/usage/sessions.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/docs/usage/tips.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/docs/usage/voice.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/docs/usage/watch.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/docs/usage.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli/website/share/index.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli_dev.egg-info/dependency_links.txt +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli_dev.egg-info/entry_points.txt +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/cecli_dev.egg-info/top_level.txt +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/docker/Dockerfile +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/docker/Dockerfile.local.nvidia.cuda.ubuntu +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/requirements/requirements-help.in +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/requirements/requirements-playwright.in +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/requirements/requirements.in +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/requirements/tree-sitter.in +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/requirements.txt +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/scripts/30k-image.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/scripts/Dockerfile.jekyll +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/scripts/__init__.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/scripts/blame.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/scripts/clean_metadata.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/scripts/cost_analyzer.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/scripts/cost_calculator.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/scripts/dl_icons.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/scripts/filter-chat-mode.js +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/scripts/generate_providers.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/scripts/get_contributor_list.js +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/scripts/get_hashline.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/scripts/history_prompts.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/scripts/homepage.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/scripts/issues.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/scripts/jekyll_build.sh +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/scripts/jekyll_run.sh +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/scripts/logo_svg.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/scripts/recording_audio.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/scripts/redact-cast.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/scripts/rename_to_cecli.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/scripts/tmux_record.sh +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/scripts/tsl_pack_langs.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/scripts/update-blame.sh +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/scripts/update-docs.sh +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/scripts/update-history.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/scripts/versionbump.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/scripts/yank-old-versions.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/setup.cfg +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/shim.pyproject.toml +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/__init__.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/basic/__init__.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/basic/test_aws_credentials.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/basic/test_background_commands.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/basic/test_commands.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/basic/test_custom_commands.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/basic/test_deprecated.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/basic/test_editblock.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/basic/test_editor.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/basic/test_exceptions.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/basic/test_find_or_blocks.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/basic/test_hashline.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/basic/test_history.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/basic/test_io.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/basic/test_main.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/basic/test_model_info_manager.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/basic/test_model_provider_manager.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/basic/test_onboarding.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/basic/test_plugin_manager.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/basic/test_prompts.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/basic/test_repo.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/basic/test_sanity_check_repo.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/basic/test_scripting.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/basic/test_sendchat.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/basic/test_sessions.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/basic/test_skills.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/basic/test_special.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/basic/test_ssl_verification.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/basic/test_udiff.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/basic/test_urls.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/basic/test_voice.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/basic/test_watch.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/basic/test_wholefile.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/coders/test_copypaste_coder.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/conftest.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/fixtures/chat-history-search-replace-gold.txt +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/fixtures/chat-history.md +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/fixtures/languages/arduino/test.ino +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/fixtures/languages/c/test.c +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/fixtures/languages/chatito/test.chatito +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/fixtures/languages/clojure/test.clj +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/fixtures/languages/commonlisp/test.lisp +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/fixtures/languages/cpp/test.cpp +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/fixtures/languages/csharp/test.cs +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/fixtures/languages/d/test.d +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/fixtures/languages/dart/test.dart +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/fixtures/languages/elisp/test.el +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/fixtures/languages/elixir/test.ex +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/fixtures/languages/elm/test.elm +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/fixtures/languages/gleam/test.gleam +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/fixtures/languages/go/test.go +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/fixtures/languages/haskell/test.hs +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/fixtures/languages/hcl/test.tf +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/fixtures/languages/java/test.java +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/fixtures/languages/javascript/test.js +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/fixtures/languages/kotlin/test.kt +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/fixtures/languages/lua/test.lua +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/fixtures/languages/matlab/test.m +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/fixtures/languages/ocaml/test.ml +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/fixtures/languages/ocaml_interface/test.mli +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/fixtures/languages/php/test.php +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/fixtures/languages/pony/test.pony +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/fixtures/languages/properties/test.properties +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/fixtures/languages/python/test.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/fixtures/languages/ql/test.ql +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/fixtures/languages/r/test.r +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/fixtures/languages/racket/test.rkt +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/fixtures/languages/ruby/test.rb +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/fixtures/languages/rust/test.rs +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/fixtures/languages/scala/test.scala +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/fixtures/languages/solidity/test.sol +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/fixtures/languages/swift/test.swift +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/fixtures/languages/tsx/test.tsx +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/fixtures/languages/typescript/test.ts +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/fixtures/languages/udev/test.rules +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/fixtures/languages/zig/test.zig +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/fixtures/sample-code-base/sample.js +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/fixtures/sample-code-base/sample.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/fixtures/sample-code-base-repo-map.txt +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/fixtures/watch.js +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/fixtures/watch.lisp +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/fixtures/watch.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/fixtures/watch_question.js +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/help/test_help.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/helpers/monorepo/test_config.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/helpers/monorepo/test_config_active.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/helpers/monorepo/test_ignore_logic.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/helpers/monorepo/test_workspace.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/hooks/__init__.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/hooks/test_base.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/mcp/__init__.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/mcp/test_manager.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/tools/test_get_lines.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/tools/test_git_branch.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/tools/test_git_diff.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/tools/test_grep.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/tools/test_insert_block.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/tools/test_registry.py +0 -0
- {cecli_dev-0.99.11 → cecli_dev-0.100.0}/tests/tui/test_app.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: cecli-dev
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.100.0
|
|
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
|
|
@@ -76,16 +76,16 @@ Requires-Dist: cogapp; extra == "dev"
|
|
|
76
76
|
Requires-Dist: semver; extra == "dev"
|
|
77
77
|
Requires-Dist: codespell; extra == "dev"
|
|
78
78
|
Requires-Dist: uv; extra == "dev"
|
|
79
|
-
Requires-Dist: memray; extra == "dev"
|
|
79
|
+
Requires-Dist: memray; sys_platform != "win32" and extra == "dev"
|
|
80
80
|
Requires-Dist: objgraph; extra == "dev"
|
|
81
81
|
Requires-Dist: pympler; extra == "dev"
|
|
82
82
|
Requires-Dist: guppy3; extra == "dev"
|
|
83
|
+
Requires-Dist: psutil; extra == "dev"
|
|
83
84
|
Provides-Extra: help
|
|
84
85
|
Requires-Dist: llama-index-embeddings-huggingface; extra == "help"
|
|
85
86
|
Requires-Dist: numpy>=1.26.4; extra == "help"
|
|
86
87
|
Provides-Extra: playwright
|
|
87
88
|
Requires-Dist: playwright; extra == "playwright"
|
|
88
|
-
Provides-Extra: tui
|
|
89
89
|
Dynamic: license-file
|
|
90
90
|
|
|
91
91
|
## Why `cecli`?
|
|
@@ -110,6 +110,7 @@ LLMs are a part of our lives from here on out so join us in learning about and c
|
|
|
110
110
|
* [MCP Configuration](https://github.com/dwash96/cecli/blob/main/cecli/website/docs/config/mcp.md)
|
|
111
111
|
* [TUI Configuration](https://github.com/dwash96/cecli/blob/main/cecli/website/docs/config/tui.md)
|
|
112
112
|
* [Skills](https://github.com/dwash96/cecli/blob/main/cecli/website/docs/config/skills.md)
|
|
113
|
+
* [Subagents](https://github.com/dwash96/cecli/blob/main/cecli/website/docs/config/subagents.md)
|
|
113
114
|
* [Session Management](https://github.com/dwash96/cecli/blob/main/cecli/website/docs/sessions.md)
|
|
114
115
|
* [Hooks](https://github.com/dwash96/cecli/blob/main/cecli/website/docs/config/hooks.md)
|
|
115
116
|
* [Workspaces](https://github.com/dwash96/cecli/blob/main/cecli/website/docs/config/workspaces.md)
|
|
@@ -232,7 +233,7 @@ The current priorities are to improve core capabilities and user experience of t
|
|
|
232
233
|
* [ ] Build an explicit workflow and local tooling for internal discovery mechanisms
|
|
233
234
|
|
|
234
235
|
4. **Context Delivery** - [Discussion](https://github.com/dwash96/cecli/issues/47)
|
|
235
|
-
* [
|
|
236
|
+
* [x] Use workflow for internal discovery to better target file snippets needed for specific tasks (ExploreCode and ReadRange)
|
|
236
237
|
* [x] Add support for partial files and code snippets in model completion messages
|
|
237
238
|
* [x] Update message request structure for optimal caching
|
|
238
239
|
|
|
@@ -251,12 +252,12 @@ The current priorities are to improve core capabilities and user experience of t
|
|
|
251
252
|
* [x] Add a dynamic tool discovery tool to allow the system to have only the tools it needs in context
|
|
252
253
|
|
|
253
254
|
7. **Sub Agents**
|
|
254
|
-
* [
|
|
255
|
+
* [x] Add `/invoke-agent` command to manually branch a sub agent and return a summary to the main context
|
|
255
256
|
* [x] Add an instance-able view of the conversation system so sub agents get their own context and workspaces
|
|
256
257
|
* [x] Modify coder classes to have discrete identifiers for themselves/management utilities for them to have their own slices of the world
|
|
257
258
|
* [x] Refactor global files like todo lists to live inside instance folders to avoid state conflicts
|
|
258
|
-
* [
|
|
259
|
-
* [
|
|
259
|
+
* [x] Add a `Delegate` tool that launches a sub agent as a background command that the parent model waits for to finish
|
|
260
|
+
* [x] Add visibility into active sub agent calls in TUI
|
|
260
261
|
|
|
261
262
|
8. **Hooks**
|
|
262
263
|
* [x] Add hooks base class for user defined python hooks with an execute method with type and priority settings
|
|
@@ -270,7 +271,7 @@ The current priorities are to improve core capabilities and user experience of t
|
|
|
270
271
|
* [x] Update internal file diff representation to support hashline propagation
|
|
271
272
|
|
|
272
273
|
10. **Dynamic Context Management**
|
|
273
|
-
* [
|
|
274
|
+
* [x] Update compaction to use observational memory sub agent calls to generate decision records that are used as the compaction basis
|
|
274
275
|
* [ ] Persist decision records to disk for sessions with some settings for managing lifetimes of such persistence
|
|
275
276
|
* [ ] Integrate RLM to extract information from decision records on disk and other definable notes
|
|
276
277
|
* [ ] Add a "describe" tool that launches a sub agent workflow that populates an RLM call's context with:
|
|
@@ -20,6 +20,7 @@ LLMs are a part of our lives from here on out so join us in learning about and c
|
|
|
20
20
|
* [MCP Configuration](https://github.com/dwash96/cecli/blob/main/cecli/website/docs/config/mcp.md)
|
|
21
21
|
* [TUI Configuration](https://github.com/dwash96/cecli/blob/main/cecli/website/docs/config/tui.md)
|
|
22
22
|
* [Skills](https://github.com/dwash96/cecli/blob/main/cecli/website/docs/config/skills.md)
|
|
23
|
+
* [Subagents](https://github.com/dwash96/cecli/blob/main/cecli/website/docs/config/subagents.md)
|
|
23
24
|
* [Session Management](https://github.com/dwash96/cecli/blob/main/cecli/website/docs/sessions.md)
|
|
24
25
|
* [Hooks](https://github.com/dwash96/cecli/blob/main/cecli/website/docs/config/hooks.md)
|
|
25
26
|
* [Workspaces](https://github.com/dwash96/cecli/blob/main/cecli/website/docs/config/workspaces.md)
|
|
@@ -142,7 +143,7 @@ The current priorities are to improve core capabilities and user experience of t
|
|
|
142
143
|
* [ ] Build an explicit workflow and local tooling for internal discovery mechanisms
|
|
143
144
|
|
|
144
145
|
4. **Context Delivery** - [Discussion](https://github.com/dwash96/cecli/issues/47)
|
|
145
|
-
* [
|
|
146
|
+
* [x] Use workflow for internal discovery to better target file snippets needed for specific tasks (ExploreCode and ReadRange)
|
|
146
147
|
* [x] Add support for partial files and code snippets in model completion messages
|
|
147
148
|
* [x] Update message request structure for optimal caching
|
|
148
149
|
|
|
@@ -161,12 +162,12 @@ The current priorities are to improve core capabilities and user experience of t
|
|
|
161
162
|
* [x] Add a dynamic tool discovery tool to allow the system to have only the tools it needs in context
|
|
162
163
|
|
|
163
164
|
7. **Sub Agents**
|
|
164
|
-
* [
|
|
165
|
+
* [x] Add `/invoke-agent` command to manually branch a sub agent and return a summary to the main context
|
|
165
166
|
* [x] Add an instance-able view of the conversation system so sub agents get their own context and workspaces
|
|
166
167
|
* [x] Modify coder classes to have discrete identifiers for themselves/management utilities for them to have their own slices of the world
|
|
167
168
|
* [x] Refactor global files like todo lists to live inside instance folders to avoid state conflicts
|
|
168
|
-
* [
|
|
169
|
-
* [
|
|
169
|
+
* [x] Add a `Delegate` tool that launches a sub agent as a background command that the parent model waits for to finish
|
|
170
|
+
* [x] Add visibility into active sub agent calls in TUI
|
|
170
171
|
|
|
171
172
|
8. **Hooks**
|
|
172
173
|
* [x] Add hooks base class for user defined python hooks with an execute method with type and priority settings
|
|
@@ -180,7 +181,7 @@ The current priorities are to improve core capabilities and user experience of t
|
|
|
180
181
|
* [x] Update internal file diff representation to support hashline propagation
|
|
181
182
|
|
|
182
183
|
10. **Dynamic Context Management**
|
|
183
|
-
* [
|
|
184
|
+
* [x] Update compaction to use observational memory sub agent calls to generate decision records that are used as the compaction basis
|
|
184
185
|
* [ ] Persist decision records to disk for sessions with some settings for managing lifetimes of such persistence
|
|
185
186
|
* [ ] Integrate RLM to extract information from decision records on disk and other definable notes
|
|
186
187
|
* [ ] Add a "describe" tool that launches a sub agent workflow that populates an RLM call's context with:
|
|
@@ -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 = '0.
|
|
22
|
-
__version_tuple__ = version_tuple = (0,
|
|
21
|
+
__version__ = version = '0.100.0'
|
|
22
|
+
__version_tuple__ = version_tuple = (0, 100, 0)
|
|
23
23
|
|
|
24
|
-
__commit_id__ = commit_id = '
|
|
24
|
+
__commit_id__ = commit_id = 'g8b6086f7f'
|
|
@@ -12,6 +12,7 @@ from .editor_whole_coder import EditorWholeFileCoder
|
|
|
12
12
|
from .hashline_coder import HashLineCoder
|
|
13
13
|
from .help_coder import HelpCoder
|
|
14
14
|
from .patch_coder import PatchCoder
|
|
15
|
+
from .sub_agent_coder import SubAgentCoder
|
|
15
16
|
from .udiff_coder import UnifiedDiffCoder
|
|
16
17
|
from .udiff_simple import UnifiedDiffSimpleCoder
|
|
17
18
|
from .wholefile_coder import WholeFileCoder
|
|
@@ -37,4 +38,5 @@ __all__ = [
|
|
|
37
38
|
AgentCoder,
|
|
38
39
|
CopyPasteCoder,
|
|
39
40
|
HashLineCoder,
|
|
41
|
+
SubAgentCoder,
|
|
40
42
|
]
|
|
@@ -2,6 +2,7 @@ import asyncio
|
|
|
2
2
|
import base64
|
|
3
3
|
import json
|
|
4
4
|
import locale
|
|
5
|
+
import logging
|
|
5
6
|
import os
|
|
6
7
|
import platform
|
|
7
8
|
import random
|
|
@@ -14,6 +15,7 @@ from pathlib import Path
|
|
|
14
15
|
from cecli import utils
|
|
15
16
|
from cecli.change_tracker import ChangeTracker
|
|
16
17
|
from cecli.helpers import nested, responses
|
|
18
|
+
from cecli.helpers.agents.service import AgentService
|
|
17
19
|
from cecli.helpers.background_commands import BackgroundCommandManager
|
|
18
20
|
from cecli.helpers.conversation import ConversationService, MessageTag
|
|
19
21
|
from cecli.helpers.similarity import (
|
|
@@ -33,6 +35,8 @@ from .base_coder import Coder
|
|
|
33
35
|
|
|
34
36
|
from cecli.helpers.coroutines import interruptible # isort:skip
|
|
35
37
|
|
|
38
|
+
logger = logging.getLogger(__name__)
|
|
39
|
+
|
|
36
40
|
|
|
37
41
|
class AgentCoder(Coder):
|
|
38
42
|
"""Mode where the LLM autonomously manages which files are in context."""
|
|
@@ -40,6 +44,7 @@ class AgentCoder(Coder):
|
|
|
40
44
|
edit_format = "agent"
|
|
41
45
|
prompt_format = "agent"
|
|
42
46
|
context_management_enabled = True
|
|
47
|
+
|
|
43
48
|
hashlines = True
|
|
44
49
|
stop_on_empty = False
|
|
45
50
|
|
|
@@ -71,7 +76,7 @@ class AgentCoder(Coder):
|
|
|
71
76
|
"edittext",
|
|
72
77
|
"undochange",
|
|
73
78
|
}
|
|
74
|
-
self.edit_allowed =
|
|
79
|
+
self.edit_allowed = True
|
|
75
80
|
self.max_tool_calls = 10000
|
|
76
81
|
self.large_file_token_threshold = 8192
|
|
77
82
|
self.skills_manager = None
|
|
@@ -92,11 +97,32 @@ class AgentCoder(Coder):
|
|
|
92
97
|
self.skip_cli_confirmations = False
|
|
93
98
|
self.agent_finished = False
|
|
94
99
|
self.agent_config = self._get_agent_config()
|
|
100
|
+
self.max_sub_agents = self.agent_config.get("max_sub_agents", 3)
|
|
101
|
+
self.sub_agent_paths = self.agent_config.get("subagent_paths", [])
|
|
95
102
|
self._setup_agent()
|
|
103
|
+
|
|
104
|
+
AgentService.build_registry(self.sub_agent_paths)
|
|
96
105
|
ToolRegistry.build_registry(agent_config=self.agent_config)
|
|
106
|
+
|
|
97
107
|
self.loaded_custom_tools = ToolRegistry.loaded_custom_tools
|
|
98
108
|
super().__init__(*args, **kwargs)
|
|
99
109
|
|
|
110
|
+
def post_init(self):
|
|
111
|
+
super().post_init()
|
|
112
|
+
# Populate per-instance tool and server filters from config
|
|
113
|
+
self.registered_tools["included"] = set(
|
|
114
|
+
map(str.lower, self.agent_config.get("tools_includelist", []))
|
|
115
|
+
)
|
|
116
|
+
self.registered_tools["excluded"] = set(
|
|
117
|
+
map(str.lower, self.agent_config.get("tools_excludelist", []))
|
|
118
|
+
)
|
|
119
|
+
self.registered_servers["included"] = set(
|
|
120
|
+
map(str.lower, self.agent_config.get("servers_includelist", []))
|
|
121
|
+
)
|
|
122
|
+
self.registered_servers["excluded"] = set(
|
|
123
|
+
map(str.lower, self.agent_config.get("servers_excludelist", []))
|
|
124
|
+
)
|
|
125
|
+
|
|
100
126
|
def _setup_agent(self):
|
|
101
127
|
os.makedirs(".cecli/temp", exist_ok=True)
|
|
102
128
|
|
|
@@ -128,6 +154,7 @@ class AgentCoder(Coder):
|
|
|
128
154
|
)
|
|
129
155
|
config["command_timeout"] = nested.getter(config, "command_timeout", 30)
|
|
130
156
|
config["hot_reload"] = nested.getter(config, "hot_reload", False)
|
|
157
|
+
config["allow_nested_delegation"] = nested.getter(config, "allow_nested_delegation", False)
|
|
131
158
|
|
|
132
159
|
config["tools_paths"] = nested.getter(config, ["tools_paths", "tool_paths"], [])
|
|
133
160
|
config["tools_includelist"] = nested.getter(
|
|
@@ -137,6 +164,12 @@ class AgentCoder(Coder):
|
|
|
137
164
|
config, ["tools_excludelist", "tools_blacklist"], []
|
|
138
165
|
)
|
|
139
166
|
|
|
167
|
+
config["servers_includelist"] = nested.getter(
|
|
168
|
+
config, ["servers_includelist", "servers_whitelist"], []
|
|
169
|
+
)
|
|
170
|
+
config["servers_excludelist"] = nested.getter(
|
|
171
|
+
config, ["servers_excludelist", "servers_blacklist"], []
|
|
172
|
+
)
|
|
140
173
|
config["include_context_blocks"] = set(
|
|
141
174
|
nested.getter(
|
|
142
175
|
config,
|
|
@@ -148,6 +181,7 @@ class AgentCoder(Coder):
|
|
|
148
181
|
# "git_status",
|
|
149
182
|
# "symbol_outline",
|
|
150
183
|
"todo_list",
|
|
184
|
+
"sub_agents",
|
|
151
185
|
"skills",
|
|
152
186
|
},
|
|
153
187
|
)
|
|
@@ -173,6 +207,7 @@ class AgentCoder(Coder):
|
|
|
173
207
|
config["skills_excludelist"] = nested.getter(
|
|
174
208
|
config, ["skills_excludelist", "skills_blacklist"], []
|
|
175
209
|
)
|
|
210
|
+
config["skills_init"] = nested.getter(config, ["skills_init", "skills_startup"], [])
|
|
176
211
|
|
|
177
212
|
if "skills" not in self.allowed_context_blocks or not nested.getter(
|
|
178
213
|
config, "skills_paths", []
|
|
@@ -193,6 +228,7 @@ class AgentCoder(Coder):
|
|
|
193
228
|
directory_paths=config.get("skills_paths", []),
|
|
194
229
|
include_list=config.get("skills_includelist", []),
|
|
195
230
|
exclude_list=config.get("skills_excludelist", []),
|
|
231
|
+
initialize_list=config.get("skills_init", []),
|
|
196
232
|
git_root=git_root,
|
|
197
233
|
coder=self,
|
|
198
234
|
)
|
|
@@ -212,6 +248,12 @@ class AgentCoder(Coder):
|
|
|
212
248
|
joined_skills = ", ".join(skills_list)
|
|
213
249
|
self.io.tool_output(f"Available Skills: {joined_skills}")
|
|
214
250
|
|
|
251
|
+
registry = AgentService.get_registry()
|
|
252
|
+
if registry:
|
|
253
|
+
names = sorted(registry.keys())
|
|
254
|
+
joined_names = ", ".join(names)
|
|
255
|
+
self.io.tool_output(f"Available Subagents: {joined_names}")
|
|
256
|
+
|
|
215
257
|
def get_local_tool_schemas(self):
|
|
216
258
|
"""Returns the JSON schemas for all local tools using the tool registry."""
|
|
217
259
|
schemas = []
|
|
@@ -282,9 +324,7 @@ class AgentCoder(Coder):
|
|
|
282
324
|
content_parts.append(item.text)
|
|
283
325
|
return "".join(content_parts)
|
|
284
326
|
except Exception as e:
|
|
285
|
-
self.io.tool_warning(
|
|
286
|
-
(f"Executing {tool_name} on {server.name} failed:\nError: {e}")
|
|
287
|
-
)
|
|
327
|
+
self.io.tool_warning(f"Executing {tool_name} on {server.name} failed:\nError: {e}")
|
|
288
328
|
return f"Error executing tool call {tool_name}: {e}"
|
|
289
329
|
|
|
290
330
|
result, interrupted = await interruptible(_exec_async(), self.interrupt_event)
|
|
@@ -319,6 +359,7 @@ class AgentCoder(Coder):
|
|
|
319
359
|
"git_status",
|
|
320
360
|
"symbol_outline",
|
|
321
361
|
"skills",
|
|
362
|
+
"sub_agents",
|
|
322
363
|
"loaded_skills",
|
|
323
364
|
]
|
|
324
365
|
for block_type in block_types:
|
|
@@ -354,6 +395,10 @@ class AgentCoder(Coder):
|
|
|
354
395
|
content = self.get_skills_context()
|
|
355
396
|
elif block_name == "loaded_skills":
|
|
356
397
|
content = self.get_skills_content()
|
|
398
|
+
elif block_name == "sub_agents" and (
|
|
399
|
+
not self.parent_uuid or self.agent_config.get("allow_nested_delegation", False)
|
|
400
|
+
):
|
|
401
|
+
content = self.get_sub_agents_context()
|
|
357
402
|
if content is not None:
|
|
358
403
|
self.context_blocks_cache[block_name] = content
|
|
359
404
|
return content
|
|
@@ -381,7 +426,10 @@ class AgentCoder(Coder):
|
|
|
381
426
|
try:
|
|
382
427
|
result = '<context name="symbol_outline" from="agent">\n'
|
|
383
428
|
result += "## Symbol Outline (Current Context)\n\n"
|
|
384
|
-
result +=
|
|
429
|
+
result += (
|
|
430
|
+
"Code definitions (classes, functions, methods, etc.) found in files currently in"
|
|
431
|
+
" chat context."
|
|
432
|
+
)
|
|
385
433
|
result += "\n\n"
|
|
386
434
|
files_to_outline = list(self.abs_fnames) + list(self.abs_read_only_fnames)
|
|
387
435
|
if not files_to_outline:
|
|
@@ -459,7 +507,20 @@ class AgentCoder(Coder):
|
|
|
459
507
|
ConversationService.get_chunks(self).add_file_list_reminder()
|
|
460
508
|
|
|
461
509
|
# Add system messages (including examples and reminder)
|
|
462
|
-
|
|
510
|
+
# For sub-agents, use their specific system prompt via AgentService lookup
|
|
511
|
+
# For primary agents, use the default system messages flow
|
|
512
|
+
needs_system_prompts = True
|
|
513
|
+
if hasattr(self, "parent_uuid") and self.parent_uuid:
|
|
514
|
+
service = AgentService.get_instance(self)
|
|
515
|
+
info = service.sub_agents.get(self.uuid)
|
|
516
|
+
if info:
|
|
517
|
+
config = AgentService.get_registry().get(info.name)
|
|
518
|
+
if config and config.prompt and config.prompt.strip():
|
|
519
|
+
ConversationService.get_chunks(self).add_system_message(config.prompt)
|
|
520
|
+
needs_system_prompts = False
|
|
521
|
+
|
|
522
|
+
if needs_system_prompts:
|
|
523
|
+
ConversationService.get_chunks(self).add_system_messages()
|
|
463
524
|
|
|
464
525
|
# Add static context blocks (priority 50 - between SYSTEM and EXAMPLES)
|
|
465
526
|
ConversationService.get_chunks(self).add_static_context_blocks()
|
|
@@ -522,7 +583,10 @@ class AgentCoder(Coder):
|
|
|
522
583
|
)
|
|
523
584
|
if editable_files:
|
|
524
585
|
result += "\n".join(editable_files) + "\n\n"
|
|
525
|
-
result +=
|
|
586
|
+
result += (
|
|
587
|
+
f"**Total editable: {len(editable_files)} files,"
|
|
588
|
+
f" {editable_tokens:,} tokens**\n\n"
|
|
589
|
+
)
|
|
526
590
|
else:
|
|
527
591
|
result += "No editable files in context\n\n"
|
|
528
592
|
if self.abs_read_only_fnames:
|
|
@@ -542,7 +606,10 @@ class AgentCoder(Coder):
|
|
|
542
606
|
)
|
|
543
607
|
if readonly_files:
|
|
544
608
|
result += "\n".join(readonly_files) + "\n\n"
|
|
545
|
-
result +=
|
|
609
|
+
result += (
|
|
610
|
+
f"**Total read-only: {len(readonly_files)} files,"
|
|
611
|
+
f" {readonly_tokens:,} tokens**\n\n"
|
|
612
|
+
)
|
|
546
613
|
else:
|
|
547
614
|
result += "No read-only files in context\n\n"
|
|
548
615
|
extra_tokens = sum(self.context_block_tokens.values())
|
|
@@ -730,7 +797,7 @@ class AgentCoder(Coder):
|
|
|
730
797
|
self.model_kwargs = {}
|
|
731
798
|
result_message = f"Error executing {tool_name}: {e}"
|
|
732
799
|
self.io.tool_error(
|
|
733
|
-
|
|
800
|
+
f"Error during {tool_name} execution: {e}\n{traceback.format_exc()}"
|
|
734
801
|
)
|
|
735
802
|
tool_responses.append(
|
|
736
803
|
{"role": "tool", "tool_call_id": tool_call.id, "content": result_message}
|
|
@@ -738,7 +805,13 @@ class AgentCoder(Coder):
|
|
|
738
805
|
|
|
739
806
|
if self.auto_lint and used_write_tool:
|
|
740
807
|
edited = list(self.files_edited_by_tools)
|
|
741
|
-
|
|
808
|
+
lint_coro = self.lint_edited(edited, show_output=False)
|
|
809
|
+
lint_errors, interrupted = await self.coroutines.interruptible(
|
|
810
|
+
lint_coro, self.interrupt_event
|
|
811
|
+
)
|
|
812
|
+
if interrupted:
|
|
813
|
+
raise KeyboardInterrupt("Interrupted during linting")
|
|
814
|
+
|
|
742
815
|
self.lint_outcome = not lint_errors
|
|
743
816
|
|
|
744
817
|
if lint_errors:
|
|
@@ -801,6 +874,7 @@ class AgentCoder(Coder):
|
|
|
801
874
|
# 1. Handle Tool Execution Follow-up (Reflection)
|
|
802
875
|
if self.agent_finished:
|
|
803
876
|
self.tool_usage_history = []
|
|
877
|
+
self.tool_call_vectors = []
|
|
804
878
|
self.reflected_message = None
|
|
805
879
|
if self.files_edited_by_tools:
|
|
806
880
|
_ = await self.auto_commit(self.files_edited_by_tools)
|
|
@@ -840,7 +914,12 @@ class AgentCoder(Coder):
|
|
|
840
914
|
" its outputs are no longer necessary"
|
|
841
915
|
)
|
|
842
916
|
self.io.tool_output(waiting_msg)
|
|
843
|
-
|
|
917
|
+
sleep_coro = asyncio.sleep(command_timeout / 2)
|
|
918
|
+
_res, interrupted = await self.coroutines.interruptible(
|
|
919
|
+
sleep_coro, self.interrupt_event
|
|
920
|
+
)
|
|
921
|
+
if interrupted:
|
|
922
|
+
raise KeyboardInterrupt("Interrupted while waiting for background commands")
|
|
844
923
|
return True
|
|
845
924
|
|
|
846
925
|
# Check for recently finished commands that need reflection
|
|
@@ -853,11 +932,15 @@ class AgentCoder(Coder):
|
|
|
853
932
|
self.tool_usage_history = []
|
|
854
933
|
return True
|
|
855
934
|
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
935
|
+
# 4. If we have called no tools (e.g. the first message)
|
|
936
|
+
# Allow early exiting
|
|
937
|
+
# If a model forgets a tool call, replay the request instead of stopping early
|
|
938
|
+
if self.tool_call_vectors:
|
|
939
|
+
if content and not tool_calls_found and self.num_reflections < self.max_reflections:
|
|
940
|
+
self.reflected_message = (
|
|
941
|
+
"Continue with your task. If you have completed it, call the `Finished` tool."
|
|
942
|
+
)
|
|
943
|
+
return True
|
|
861
944
|
|
|
862
945
|
if tool_calls_found and self.num_reflections < self.max_reflections:
|
|
863
946
|
self.tool_call_count = 0
|
|
@@ -1020,8 +1103,8 @@ class AgentCoder(Coder):
|
|
|
1020
1103
|
context_parts.append("## File Editing Tools Disabled")
|
|
1021
1104
|
context_parts.append(
|
|
1022
1105
|
"File editing tools are currently disabled. Use `ReadRange` to determine the"
|
|
1023
|
-
" current content hash prefixes needed to perform an edit and activate them when
|
|
1024
|
-
" are ready to edit a file."
|
|
1106
|
+
" current content hash prefixes needed to perform an edit and activate them when"
|
|
1107
|
+
" you are ready to edit a file."
|
|
1025
1108
|
)
|
|
1026
1109
|
|
|
1027
1110
|
context_parts.append("\n\n")
|
|
@@ -1377,6 +1460,42 @@ Todo list does not exist. Please update it with the `UpdateTodoList` tool.</cont
|
|
|
1377
1460
|
self.io.tool_error(f"Error generating skills content context: {str(e)}")
|
|
1378
1461
|
return None
|
|
1379
1462
|
|
|
1463
|
+
def get_sub_agents_context(self):
|
|
1464
|
+
"""
|
|
1465
|
+
Generate a context block for registered sub-agents.
|
|
1466
|
+
Only shown for primary coders (no parent_uuid).
|
|
1467
|
+
|
|
1468
|
+
Returns:
|
|
1469
|
+
Formatted context block string with sub-agent names and descriptions,
|
|
1470
|
+
or None if no sub-agents are registered or if called from a sub-agent.
|
|
1471
|
+
"""
|
|
1472
|
+
if not self.use_enhanced_context:
|
|
1473
|
+
return None
|
|
1474
|
+
if hasattr(self, "parent_uuid") and self.parent_uuid:
|
|
1475
|
+
return None
|
|
1476
|
+
try:
|
|
1477
|
+
registry = AgentService.get_registry()
|
|
1478
|
+
if not registry:
|
|
1479
|
+
return None
|
|
1480
|
+
|
|
1481
|
+
result = '<context name="sub_agents" from="agent">\n'
|
|
1482
|
+
result += "## Available Sub-Agents\n\n"
|
|
1483
|
+
result += f"Found {len(registry)} registered sub-agent(s):\n\n"
|
|
1484
|
+
|
|
1485
|
+
for name, config in sorted(registry.items()):
|
|
1486
|
+
result += f"**{name}**:\n"
|
|
1487
|
+
desc = config.metadata.get("description", "")
|
|
1488
|
+
if desc:
|
|
1489
|
+
result += f"{desc}\n"
|
|
1490
|
+
result += "\n"
|
|
1491
|
+
|
|
1492
|
+
result += "Use the `Delegate` tool with the sub-agent name to delegate tasks.\n"
|
|
1493
|
+
result += "</context>"
|
|
1494
|
+
return result
|
|
1495
|
+
except Exception as e:
|
|
1496
|
+
self.io.tool_error(f"Error generating sub-agents context: {str(e)}")
|
|
1497
|
+
return None
|
|
1498
|
+
|
|
1380
1499
|
def get_background_command_output(self):
|
|
1381
1500
|
"""
|
|
1382
1501
|
Get background command output to append after the main message.
|