kolega-code 0.12.0__tar.gz → 0.13.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.
- {kolega_code-0.12.0 → kolega_code-0.13.0}/CHANGELOG.md +24 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/PKG-INFO +4 -1
- {kolega_code-0.12.0 → kolega_code-0.13.0}/README.md +2 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/docs/astro.config.mjs +4 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/docs/src/assets/coverage.svg +1 -1
- kolega_code-0.13.0/docs/src/content/docs/configuration/mcp.md +209 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/docs/src/content/docs/gigacode.mdx +5 -3
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/__init__.py +1 -1
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/agent/__init__.py +1 -1
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/agent/baseagent.py +1 -5
- kolega_code-0.13.0/kolega_code/agent/prompt_templates/extensions/cli/current_plan_artifact.md.j2 +7 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/agent/prompt_templates/user_tasks/cli/implement_plan.md.j2 +4 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/agent/prompts.py +21 -2
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/agent/tools.py +23 -3
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/cli/app.py +148 -11
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/cli/config.py +14 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/cli/main.py +329 -5
- kolega_code-0.13.0/kolega_code/cli/plan_artifacts.py +49 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/cli/session_store.py +3 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/cli/settings.py +13 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/cli/tui/agent_runtime.py +64 -10
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/cli/tui/command_handlers.py +7 -1
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/cli/tui/prompt_flows.py +9 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/cli/tui/session_diff.py +54 -2
- kolega_code-0.13.0/kolega_code/cli/tui/settings_panel.py +1001 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/cli/tui/state.py +6 -1
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/cli/tui/status_dashboard.py +3 -2
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/cli/tui/styles.tcss +21 -1
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/config.py +4 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/llm/exceptions.py +4 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/llm/specs/catalog/openai_chatgpt.py +3 -1
- kolega_code-0.13.0/kolega_code/local_state.py +65 -0
- kolega_code-0.13.0/kolega_code/mcp/__init__.py +26 -0
- kolega_code-0.13.0/kolega_code/mcp/config.py +310 -0
- kolega_code-0.13.0/kolega_code/mcp/oauth.py +241 -0
- kolega_code-0.13.0/kolega_code/mcp/service.py +483 -0
- kolega_code-0.13.0/kolega_code/mcp/state.py +211 -0
- kolega_code-0.13.0/kolega_code/mcp/tools.py +68 -0
- kolega_code-0.13.0/kolega_code/mcp/transport.py +123 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/permissions.py +73 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/tools/registry.py +2 -2
- {kolega_code-0.12.0 → kolega_code-0.13.0}/pyproject.toml +2 -1
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/llm/test_exceptions.py +14 -1
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/llm/test_model_specs.py +10 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/test_agent_tools_inventory.py +9 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/test_prompts.py +23 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/test_tool_collection_config.py +14 -1
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/test_tool_registry.py +59 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/cli/_app_test_utils.py +11 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/cli/test_app_bootstrap_settings.py +52 -1
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/cli/test_app_changes_inspector.py +5 -5
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/cli/test_app_composer_input.py +6 -4
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/cli/test_app_plan_lifecycle.py +14 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/cli/test_app_planning_restore.py +7 -0
- kolega_code-0.13.0/tests/cli/test_app_session_diff_async.py +217 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/cli/test_app_status_modes.py +152 -0
- kolega_code-0.13.0/tests/cli/test_mcp_cli.py +144 -0
- kolega_code-0.13.0/tests/cli/test_mcp_settings_formatting.py +185 -0
- kolega_code-0.13.0/tests/cli/test_plan_artifacts.py +48 -0
- kolega_code-0.13.0/tests/cli/test_session_diff.py +295 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/cli/test_session_store.py +5 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/cli/test_tui_stylesheet.py +9 -3
- kolega_code-0.13.0/tests/mcp/test_config_state_tools.py +159 -0
- kolega_code-0.13.0/tests/test_mcp_permissions.py +35 -0
- kolega_code-0.13.0/tests/test_mcp_transport.py +216 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/uv.lock +317 -3
- kolega_code-0.12.0/kolega_code/cli/tui/settings_panel.py +0 -427
- kolega_code-0.12.0/kolega_code/local_state.py +0 -38
- kolega_code-0.12.0/tests/cli/test_session_diff.py +0 -131
- {kolega_code-0.12.0 → kolega_code-0.13.0}/.env.example +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/.githooks/pre-commit +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/.github/workflows/ci.yml +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/.github/workflows/docs.yml +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/.github/workflows/release.yml +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/.gitignore +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/.pre-commit-config.yaml +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/CONTRIBUTING.md +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/LICENSE +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/RELEASING.md +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/SECURITY.md +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/docs/.gitignore +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/docs/README.md +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/docs/package-lock.json +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/docs/package.json +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/docs/public/favicon.svg +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/docs/src/assets/demo.gif +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/docs/src/assets/kolega-dark.svg +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/docs/src/assets/kolega-light.svg +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/docs/src/content/docs/cli/ask.md +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/docs/src/content/docs/cli/doctor.md +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/docs/src/content/docs/cli/overview.md +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/docs/src/content/docs/cli/sessions.md +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/docs/src/content/docs/concepts/agents.md +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/docs/src/content/docs/concepts/how-it-works.md +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/docs/src/content/docs/concepts/tools.md +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/docs/src/content/docs/configuration/environment-variables.md +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/docs/src/content/docs/configuration/prompt-overrides.md +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/docs/src/content/docs/configuration/providers-and-models.mdx +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/docs/src/content/docs/configuration/settings-and-api-keys.mdx +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/docs/src/content/docs/configuration/sign-in-with-chatgpt.mdx +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/docs/src/content/docs/getting-started/installation.mdx +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/docs/src/content/docs/getting-started/quick-start.mdx +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/docs/src/content/docs/hooks.md +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/docs/src/content/docs/index.mdx +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/docs/src/content/docs/skills.mdx +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/docs/src/content/docs/troubleshooting/diagnostics.md +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/docs/src/content/docs/tui/composer.md +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/docs/src/content/docs/tui/interface.md +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/docs/src/content/docs/tui/modes.md +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/docs/src/content/docs/tui/sessions-and-resume.md +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/docs/src/content/docs/tui/slash-commands.md +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/docs/src/content.config.ts +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/docs/src/styles/brand.css +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/docs/tsconfig.json +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/agent/browseragent.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/agent/coder.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/agent/common.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/agent/compression.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/agent/context.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/agent/conversation.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/agent/errors.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/agent/generalagent.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/agent/investigationagent.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/agent/orchestration/__init__.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/agent/orchestration/budget.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/agent/orchestration/errors.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/agent/orchestration/executor.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/agent/orchestration/guide.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/agent/orchestration/journal.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/agent/orchestration/runtime.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/agent/orchestration/types.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/agent/planningagent.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/agent/prompt_dump.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/agent/prompt_overrides.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/agent/prompt_provider.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/agent/prompt_templates/auxiliary/compression/summary.system.md +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/agent/prompt_templates/auxiliary/compression/summary.user.md.j2 +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/agent/prompt_templates/auxiliary/terminal/output_summary.system.md +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/agent/prompt_templates/auxiliary/terminal/safety.system.md +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/agent/prompt_templates/auxiliary/tools/think_hard.system.md +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/agent/prompt_templates/extensions/cli/planning_questions.md +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/agent/prompt_templates/extensions/cli/shared_task_list.md +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/agent/prompt_templates/extensions/skills/catalog.md.j2 +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/agent/prompt_templates/system/agents/browser.md.j2 +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/agent/prompt_templates/system/agents/coder_cli.md.j2 +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/agent/prompt_templates/system/agents/general.md.j2 +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/agent/prompt_templates/system/agents/investigation.md.j2 +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/agent/prompt_templates/system/agents/planning.md.j2 +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/agent/prompt_templates/system/includes/agents_md_instructions.md +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/agent/prompt_templates/system/includes/environment_variables/workspace_env_vars.md +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/agent/prompt_templates/system/includes/frontend_guidance.md +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/agent/prompt_templates/system/includes/starter_templates/expo.md +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/agent/prompt_templates/system/includes/starter_templates/html_website.md +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/agent/prompt_templates/system/includes/starter_templates/mern_stack.md +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/agent/prompt_templates/system/includes/starter_templates/react_vite_shadcdn.md +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/agent/prompt_templates/user_tasks/cli/init_agents.md.j2 +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/agent/tool_backend/agent_tool.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/agent/tool_backend/base_tool.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/agent/tool_backend/browser_tool.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/agent/tool_backend/build_tool.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/agent/tool_backend/edit_preview.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/agent/tool_backend/edit_tool.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/agent/tool_backend/glob_tool.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/agent/tool_backend/list_directory_tool.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/agent/tool_backend/memory_tool.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/agent/tool_backend/read_file_tool.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/agent/tool_backend/read_image_tool.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/agent/tool_backend/search_backends/__init__.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/agent/tool_backend/search_backends/base.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/agent/tool_backend/search_backends/duckduckgo.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/agent/tool_backend/search_backends/errors.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/agent/tool_backend/search_backends/firecrawl.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/agent/tool_backend/search_backends/models.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/agent/tool_backend/search_backends/searxng.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/agent/tool_backend/search_backends/tavily.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/agent/tool_backend/search_codebase_tool.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/agent/tool_backend/streaming_tool.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/agent/tool_backend/terminal_tool.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/agent/tool_backend/think_hard_tool.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/agent/tool_backend/web_fetch_tool.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/agent/tool_backend/web_search_tool.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/agent/tool_backend/workflow_tool.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/agent/utils/commands.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/auth/__init__.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/auth/_jwt.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/auth/chatgpt_oauth.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/auth/constants.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/auth/tokens.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/cli/__init__.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/cli/clipboard_image.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/cli/connection.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/cli/diagnostics.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/cli/file_index.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/cli/mentions.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/cli/messages.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/cli/provider_registry.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/cli/skills.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/cli/slash_commands.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/cli/theme.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/cli/tui/__init__.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/cli/tui/changes_screen.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/cli/tui/constants.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/cli/tui/sub_agent_screen.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/cli/tui/terminal_display.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/cli/tui/transcript.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/cli/tui/widgets.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/cli/updater.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/events.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/hooks/__init__.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/hooks/backends.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/hooks/config.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/hooks/dispatcher.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/hooks/events.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/hooks/matcher.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/hooks/outcome.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/llm/client.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/llm/instrumented_client.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/llm/models.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/llm/providers/__init__.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/llm/providers/anthropic.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/llm/providers/base.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/llm/providers/chatgpt_oauth.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/llm/providers/google.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/llm/providers/models.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/llm/providers/openai.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/llm/providers/openai_responses.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/llm/providers/responses_common.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/llm/ratelimit.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/llm/specs/__init__.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/llm/specs/accessors.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/llm/specs/catalog/__init__.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/llm/specs/catalog/anthropic.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/llm/specs/catalog/dashscope.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/llm/specs/catalog/deepseek.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/llm/specs/catalog/fireworks.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/llm/specs/catalog/google.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/llm/specs/catalog/kimi_coding.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/llm/specs/catalog/moonshot.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/llm/specs/catalog/ollama_cloud.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/llm/specs/catalog/openai.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/llm/specs/catalog/together.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/llm/specs/catalog/xai.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/llm/specs/catalog/zai.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/llm/specs/thinking.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/llm/specs/types.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/llm/timeouts.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/llm/tool_execution_ids.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/models/__init__.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/models/sandbox_terminal_state.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/runtime.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/sandbox/README.md +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/sandbox/__init__.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/sandbox/async_filesystem.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/sandbox/base.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/sandbox/browser.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/sandbox/event_loop.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/sandbox/filesystem.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/sandbox/local.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/sandbox/serializer.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/sandbox/terminal.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/sandbox/utils.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/services/base.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/services/browser.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/services/file_system.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/services/html.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/services/terminal.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/services/terminal_buffer.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/tools/__init__.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/tools/core.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/tools/definitions.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/utils/__init__.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/kolega_code/utils/images.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/run_tests.sh +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/scripts/bench_hotpaths.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/scripts/check-dev-hooks.sh +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/scripts/install-kolega-code.sh +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/scripts/setup-dev.sh +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/__init__.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/__init__.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/compaction_helpers.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/conftest.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/llm/__init__.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/llm/_token_counting_utils.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/llm/test_anthropic_local_token_counting_incremental.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/llm/test_anthropic_token_counting.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/llm/test_billing_openai_cache.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/llm/test_chatgpt_live.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/llm/test_chatgpt_oauth_auth_config.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/llm/test_chatgpt_oauth_conversion.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/llm/test_chatgpt_oauth_provider.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/llm/test_chatgpt_oauth_provider_generate.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/llm/test_chatgpt_oauth_streaming.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/llm/test_client.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/llm/test_client_live.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/llm/test_client_runtime.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/llm/test_dashscope_mapping.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/llm/test_error_boundary.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/llm/test_google_thought_signature.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/llm/test_google_tool_signature_live.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/llm/test_instrumented_client.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/llm/test_instrumented_client_integration.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/llm/test_instrumented_client_stream.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/llm/test_langfuse_normalization.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/llm/test_live_providers.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/llm/test_message_conversion.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/llm/test_openai_cached_tokens.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/llm/test_openai_cached_tokens_stream.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/llm/test_openai_message_conversion.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/llm/test_openai_reasoning_replay.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/llm/test_openai_responses_provider.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/llm/test_openai_stream_accumulation.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/llm/test_openai_token_counting.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/llm/test_openai_token_counting_incremental.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/llm/test_provider_usage_mapping.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/llm/test_streaming_timeouts.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/llm/test_supports_vision.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/llm/test_thinking_effort.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/llm/test_tool_execution_ids.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/orchestration/__init__.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/orchestration/test_orchestration.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/services/__init__.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/services/test_browser.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/services/test_browser_console_logs.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/services/test_browser_content.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/services/test_browser_integration.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/services/test_browser_parity.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/services/test_file_system.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/services/test_file_system_integration.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/services/test_file_system_path.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/services/test_local_file_system.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/services/test_sandbox_terminal_input.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/services/test_terminal.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/services/test_terminal_buffer.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/services/test_terminal_state_serializer.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/test_base_agent.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/test_base_agent_anthropic_history_validation.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/test_base_agent_compaction.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/test_base_agent_effective_history.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/test_base_agent_history_serialization.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/test_base_agent_prompt_context.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/test_base_agent_role_overrides.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/test_base_agent_runtime.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/test_base_agent_tool_call_repair.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/test_base_agent_tool_call_repair_integration.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/test_base_agent_tool_execution.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/test_coder_attachments.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/test_coder_prompt_extensions.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/test_commands.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/test_compaction_integration.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/test_compaction_persistence.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/test_compaction_subagent.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/test_compaction_tui_events.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/test_compress_command.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/test_compression.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/test_conversation_compaction.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/test_duplicate_tool_results.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/test_empty_message_handling.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/test_event_emitter.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/test_general_agent.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/test_gigacode_gating.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/test_history_adapter_thinking.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/test_history_image_blocks.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/test_hooks_integration.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/test_html.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/test_image_compat.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/test_parallel_tool_calls.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/test_permissions.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/test_planning_agent.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/test_prompt_dump.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/test_prompt_overrides.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/test_prompt_provider.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/test_read_image_tool.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/test_tool_collection_builtin_dispatch.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/test_tool_collection_extensions.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/test_tool_collection_initialization.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/test_tool_collection_memory.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/test_tools.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/tool_backend/__init__.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/tool_backend/test_agent_tool.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/tool_backend/test_base_tool.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/tool_backend/test_browser_tool.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/tool_backend/test_build_tool.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/tool_backend/test_edit_preview.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/tool_backend/test_edit_tool.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/tool_backend/test_glob_tool.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/tool_backend/test_glob_tool_sandbox_parity.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/tool_backend/test_list_directory_tool.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/tool_backend/test_read_file_tool.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/tool_backend/test_search_codebase_tool.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/tool_backend/test_terminal_tool.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/tool_backend/test_think_hard_integration.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/tool_backend/test_think_hard_streaming.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/tool_backend/test_think_hard_streaming_content.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/tool_backend/test_think_hard_streaming_errors.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/tool_backend/test_think_hard_streaming_updates.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/tool_backend/test_web_fetch_tool.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/tool_backend/test_web_search_tool.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/agent/tool_backend/test_workflow_tool.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/auth/__init__.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/auth/test_chatgpt_oauth.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/auth/test_tokens.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/cli/__init__.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/cli/test_app.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/cli/test_app_agent_wiring.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/cli/test_app_compaction_restore.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/cli/test_app_composer_commands.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/cli/test_app_conversation_rendering.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/cli/test_app_diagnostics.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/cli/test_app_focus_behavior.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/cli/test_app_image_vision_warning.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/cli/test_app_mention_dropdown.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/cli/test_app_misc_commands.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/cli/test_app_model_effort_commands.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/cli/test_app_model_switch_vision.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/cli/test_app_modes_planning.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/cli/test_app_navigation_commands.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/cli/test_app_permission_prompts.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/cli/test_app_persistence_history.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/cli/test_app_planning_questions.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/cli/test_app_rendering_entries.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/cli/test_app_rendering_errors.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/cli/test_app_rendering_scroll.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/cli/test_app_rendering_selection.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/cli/test_app_rendering_status.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/cli/test_app_rendering_streaming.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/cli/test_app_rendering_terminal_logs.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/cli/test_app_rendering_tools.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/cli/test_app_skill_commands.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/cli/test_app_slash_dropdown.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/cli/test_app_sub_agents_workflows.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/cli/test_cli_config.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/cli/test_clipboard_image.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/cli/test_connection.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/cli/test_diagnostics.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/cli/test_file_index.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/cli/test_main.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/cli/test_mentions.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/cli/test_provider_registry.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/cli/test_settings.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/cli/test_skills.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/cli/test_slash_commands.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/cli/test_sub_agent_stream_accumulation.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/cli/test_terminal_display.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/cli/test_themes.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/cli/test_transcript_streaming_render.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/cli/test_updater.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/conftest.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/hooks/__init__.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/hooks/test_hooks.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/tools/__init__.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/tools/test_definitions.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/utils/__init__.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/utils/test_images.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.13.0}/tests/utils/test_images_ascii.py +0 -0
|
@@ -6,6 +6,30 @@ This project uses GitHub Releases for detailed generated release notes. This fil
|
|
|
6
6
|
|
|
7
7
|
## Unreleased
|
|
8
8
|
|
|
9
|
+
## 0.13.0 - 2026-07-02
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
|
|
13
|
+
- Added first-class MCP (Model Context Protocol) support in the CLI and TUI,
|
|
14
|
+
including server settings management.
|
|
15
|
+
- Persisted plan artifacts so they survive across CLI invocations.
|
|
16
|
+
|
|
17
|
+
### Changed
|
|
18
|
+
|
|
19
|
+
- Made session diff refreshes incremental and asynchronous for smoother TUI
|
|
20
|
+
performance.
|
|
21
|
+
|
|
22
|
+
### Fixed
|
|
23
|
+
|
|
24
|
+
- Hid queued follow-up messages from the transcript view.
|
|
25
|
+
- Polished status card spacing and made the context-full note generic.
|
|
26
|
+
- Avoided tool dispatcher input name collisions and excluded internal tool
|
|
27
|
+
collection methods from dispatch.
|
|
28
|
+
- Hardened MCP credential handling, status logging, config output, and server
|
|
29
|
+
settings reliability.
|
|
30
|
+
- Preserved gigacode enabled state across session resume.
|
|
31
|
+
- Corrected the GPT-5.5 context window to 272K on the Codex backend.
|
|
32
|
+
|
|
9
33
|
## 0.12.0 - 2026-06-30
|
|
10
34
|
|
|
11
35
|
### Added
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: kolega-code
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.13.0
|
|
4
4
|
Summary: Multi-agent coding in the terminal
|
|
5
5
|
Project-URL: Homepage, https://kolega-ai.github.io/kolega-code/
|
|
6
6
|
Project-URL: Documentation, https://kolega-ai.github.io/kolega-code/
|
|
@@ -235,6 +235,7 @@ Requires-Dist: httpx==0.28.1
|
|
|
235
235
|
Requires-Dist: jinja2==3.1.6
|
|
236
236
|
Requires-Dist: langfuse==3.14.5
|
|
237
237
|
Requires-Dist: lxml-html-clean==0.4.4
|
|
238
|
+
Requires-Dist: mcp>=1.21.2
|
|
238
239
|
Requires-Dist: nest-asyncio==1.6.0
|
|
239
240
|
Requires-Dist: openai==1.109.1
|
|
240
241
|
Requires-Dist: packaging==25.0
|
|
@@ -323,6 +324,8 @@ enough that one serial agent pass would be the bottleneck.
|
|
|
323
324
|
- **Web search and browsing:** DuckDuckGo works by default with no key; Firecrawl,
|
|
324
325
|
Tavily, and SearXNG are configurable search backends. Kolega Code can also fetch URLs
|
|
325
326
|
directly and use a Playwright-powered browser agent for interactive sites.
|
|
327
|
+
- **MCP servers:** connect verified `streamable_http`, `sse`, and `stdio` MCP servers
|
|
328
|
+
(including OAuth-enabled HTTP servers) as permission-gated tools.
|
|
326
329
|
- **Model routing:** choose provider/model combinations, set thinking effort, split
|
|
327
330
|
long-context/fast/thinking roles, and override models per agent role.
|
|
328
331
|
- **Interactive or scriptable:** use the Textual TUI, queue follow-up prompts
|
|
@@ -60,6 +60,8 @@ enough that one serial agent pass would be the bottleneck.
|
|
|
60
60
|
- **Web search and browsing:** DuckDuckGo works by default with no key; Firecrawl,
|
|
61
61
|
Tavily, and SearXNG are configurable search backends. Kolega Code can also fetch URLs
|
|
62
62
|
directly and use a Playwright-powered browser agent for interactive sites.
|
|
63
|
+
- **MCP servers:** connect verified `streamable_http`, `sse`, and `stdio` MCP servers
|
|
64
|
+
(including OAuth-enabled HTTP servers) as permission-gated tools.
|
|
63
65
|
- **Model routing:** choose provider/model combinations, set thinking effort, split
|
|
64
66
|
long-context/fast/thinking roles, and override models per agent role.
|
|
65
67
|
- **Interactive or scriptable:** use the Textual TUI, queue follow-up prompts
|
|
@@ -64,6 +64,10 @@ export default defineConfig({
|
|
|
64
64
|
label: "Settings & API Keys",
|
|
65
65
|
slug: "configuration/settings-and-api-keys",
|
|
66
66
|
},
|
|
67
|
+
{
|
|
68
|
+
label: "MCP Servers",
|
|
69
|
+
slug: "configuration/mcp",
|
|
70
|
+
},
|
|
67
71
|
{
|
|
68
72
|
label: "Environment Variables",
|
|
69
73
|
slug: "configuration/environment-variables",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="114" height="20" role="img" aria-label="coverage:
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="114" height="20" role="img" aria-label="coverage: 80.14%"><title>coverage: 80.14%</title><filter id="blur"><feGaussianBlur stdDeviation="16"/></filter><linearGradient id="s" x2="0" y2="100%"><stop offset="0" stop-color="#bbb" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient><clipPath id="r"><rect width="114" height="20" rx="3"/></clipPath><g clip-path="url(#r)"><rect width="61" height="20" fill="#555"/><rect x="61" width="53" height="20" fill="#67ac09"/><rect width="114" height="20" fill="url(#s)"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><g transform="scale(.1)"><g aria-hidden="true" fill="#010101"><text x="315" y="150" fill-opacity=".8" filter="url(#blur)" textLength="510">coverage</text><text x="315" y="150" fill-opacity=".3" textLength="510">coverage</text></g><text x="315" y="140" textLength="510">coverage</text></g><g transform="scale(.1)"><g aria-hidden="true" fill="#010101"><text x="865" y="150" fill-opacity=".8" filter="url(#blur)" textLength="430">80.14%</text><text x="865" y="150" fill-opacity=".3" textLength="430">80.14%</text></g><text x="865" y="140" textLength="430">80.14%</text></g></g></svg>
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: MCP servers
|
|
3
|
+
description: Configure Model Context Protocol servers for Kolega Code tools.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Kolega Code can expose verified [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) server tools as first-class agent tools.
|
|
7
|
+
|
|
8
|
+
MCP support is local-first and opt-in:
|
|
9
|
+
|
|
10
|
+
- Global servers are read from `<state_dir>/mcp_servers.json`.
|
|
11
|
+
- Project servers are read from `<project>/.kolega/mcp_servers.json` only after the project is trusted for MCP.
|
|
12
|
+
- Agent startup never opens a browser and never starts an OAuth flow. OAuth is only started by an explicit `kolega-code mcp verify` command or the TUI **Verify** button.
|
|
13
|
+
- MCP tools are not propagated to sub-agents.
|
|
14
|
+
- In `ask` permission mode, every MCP tool call prompts unless you save an exact-tool or whole-server allow rule.
|
|
15
|
+
|
|
16
|
+
## Config locations
|
|
17
|
+
|
|
18
|
+
| Scope | Path | Enabled when |
|
|
19
|
+
| --- | --- | --- |
|
|
20
|
+
| Global | `<state_dir>/mcp_servers.json` | Always loaded |
|
|
21
|
+
| Project | `<project>/.kolega/mcp_servers.json` | Project is trusted with `--trust-mcp` or from the TUI |
|
|
22
|
+
|
|
23
|
+
`<state_dir>` is the Kolega Code state directory. You can override it with `--state-dir` for CLI management commands.
|
|
24
|
+
|
|
25
|
+
Project MCP config is intentionally gated because it can point at local executables or remote services controlled by the repository. Trust a project only after reviewing `.kolega/mcp_servers.json`.
|
|
26
|
+
|
|
27
|
+
## Config format
|
|
28
|
+
|
|
29
|
+
```json
|
|
30
|
+
{
|
|
31
|
+
"schema_version": 1,
|
|
32
|
+
"servers": [
|
|
33
|
+
{
|
|
34
|
+
"id": "docs",
|
|
35
|
+
"name": "Docs search",
|
|
36
|
+
"transport": "streamable_http",
|
|
37
|
+
"url": "https://mcp.example.com/mcp",
|
|
38
|
+
"headers": {
|
|
39
|
+
"Authorization": "Bearer ..."
|
|
40
|
+
},
|
|
41
|
+
"enabled": true
|
|
42
|
+
}
|
|
43
|
+
]
|
|
44
|
+
}
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
`servers` may be an array, or an object keyed by server ID. Server IDs may contain letters, numbers, `_`, and `-`.
|
|
48
|
+
|
|
49
|
+
### `streamable_http`
|
|
50
|
+
|
|
51
|
+
```json
|
|
52
|
+
{
|
|
53
|
+
"id": "remote-http",
|
|
54
|
+
"transport": "streamable_http",
|
|
55
|
+
"url": "https://mcp.example.com/mcp",
|
|
56
|
+
"headers": {
|
|
57
|
+
"Authorization": "Bearer ..."
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### `sse`
|
|
63
|
+
|
|
64
|
+
```json
|
|
65
|
+
{
|
|
66
|
+
"id": "remote-sse",
|
|
67
|
+
"transport": "sse",
|
|
68
|
+
"url": "https://mcp.example.com/sse",
|
|
69
|
+
"headers": {
|
|
70
|
+
"Authorization": "Bearer ..."
|
|
71
|
+
},
|
|
72
|
+
"sse_read_timeout_seconds": 300
|
|
73
|
+
}
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### `stdio`
|
|
77
|
+
|
|
78
|
+
```json
|
|
79
|
+
{
|
|
80
|
+
"id": "local-server",
|
|
81
|
+
"transport": "stdio",
|
|
82
|
+
"command": "npx",
|
|
83
|
+
"args": ["-y", "@vendor/mcp-server"],
|
|
84
|
+
"env": {
|
|
85
|
+
"TOKEN": "..."
|
|
86
|
+
},
|
|
87
|
+
"cwd": "."
|
|
88
|
+
}
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
`stdio` servers execute a local command. `kolega-code mcp verify` refuses to start `stdio` commands in non-interactive mode unless you pass `--yes`.
|
|
92
|
+
|
|
93
|
+
## OAuth
|
|
94
|
+
|
|
95
|
+
Enable OAuth for HTTP transports with the `oauth` object:
|
|
96
|
+
|
|
97
|
+
```json
|
|
98
|
+
{
|
|
99
|
+
"id": "oauth-server",
|
|
100
|
+
"transport": "streamable_http",
|
|
101
|
+
"url": "https://mcp.example.com/mcp",
|
|
102
|
+
"oauth": {
|
|
103
|
+
"enabled": true,
|
|
104
|
+
"scope": "read write"
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
Run verification to start the OAuth flow:
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
kolega-code mcp verify oauth-server --project .
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
Use `--no-browser` to print the authorization URL instead of opening a browser. Tokens and dynamic client registration data are stored locally in `<state_dir>/mcp_oauth_tokens.json`. Kolega Code writes this file with owner-only permissions where the platform supports POSIX modes, redacts those values from diagnostics, and does not encrypt the file beyond the protection provided by the OS and filesystem permissions.
|
|
116
|
+
|
|
117
|
+
## CLI management
|
|
118
|
+
|
|
119
|
+
List servers and status:
|
|
120
|
+
|
|
121
|
+
```bash
|
|
122
|
+
kolega-code mcp --project . list
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
Add a remote server to global config:
|
|
126
|
+
|
|
127
|
+
```bash
|
|
128
|
+
kolega-code mcp --project . add docs \
|
|
129
|
+
--transport streamable_http \
|
|
130
|
+
--url https://mcp.example.com/mcp \
|
|
131
|
+
--header 'Authorization=Bearer ...'
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
Add a project config server:
|
|
135
|
+
|
|
136
|
+
```bash
|
|
137
|
+
kolega-code mcp --project . add repo-local \
|
|
138
|
+
--project-config \
|
|
139
|
+
--transport stdio \
|
|
140
|
+
--command npx \
|
|
141
|
+
--arg -y \
|
|
142
|
+
--arg @vendor/mcp-server
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
Trust project MCP config:
|
|
146
|
+
|
|
147
|
+
```bash
|
|
148
|
+
kolega-code . --trust-mcp
|
|
149
|
+
# or for one-shot use:
|
|
150
|
+
kolega-code ask "use repo tools" --project . --trust-mcp
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
Verify one server or all enabled servers:
|
|
154
|
+
|
|
155
|
+
```bash
|
|
156
|
+
kolega-code mcp --project . verify docs
|
|
157
|
+
kolega-code mcp --project . verify --all --yes
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
Enable, disable, or remove servers:
|
|
161
|
+
|
|
162
|
+
```bash
|
|
163
|
+
kolega-code mcp --project . disable docs
|
|
164
|
+
kolega-code mcp --project . enable docs
|
|
165
|
+
kolega-code mcp --project . remove docs
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
## TUI management
|
|
169
|
+
|
|
170
|
+
Open the **Settings** tab and use the **MCP Servers** section to:
|
|
171
|
+
|
|
172
|
+
- Refresh status.
|
|
173
|
+
- Trust project MCP config.
|
|
174
|
+
- Create, update, delete, enable, and disable global MCP servers.
|
|
175
|
+
- Verify a selected server.
|
|
176
|
+
- Clear stored OAuth tokens for a selected server.
|
|
177
|
+
|
|
178
|
+
Project servers are shown in the TUI but are read-only there. Edit `.kolega/mcp_servers.json` directly or use `kolega-code mcp ... --project-config`.
|
|
179
|
+
|
|
180
|
+
## Verification and tool exposure
|
|
181
|
+
|
|
182
|
+
Verification opens a real MCP session, calls `initialize`, lists all tools (including paginated results), and stores a fingerprinted status in `<state_dir>/mcp_server_status.json`.
|
|
183
|
+
|
|
184
|
+
A server's tools are exposed only when:
|
|
185
|
+
|
|
186
|
+
1. the server is enabled,
|
|
187
|
+
2. verification succeeded, and
|
|
188
|
+
3. the saved fingerprint still matches the current server config.
|
|
189
|
+
|
|
190
|
+
Changing connection details, command args, headers, env, OAuth settings, or URL makes the saved status stale and hides tools until you verify again. Changing only `enabled` does not invalidate verification.
|
|
191
|
+
|
|
192
|
+
Exposed tools are named:
|
|
193
|
+
|
|
194
|
+
```text
|
|
195
|
+
mcp__{server_id}__{tool_id}
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
The server-provided `inputSchema` is preserved verbatim.
|
|
199
|
+
|
|
200
|
+
## Permissions
|
|
201
|
+
|
|
202
|
+
MCP tools participate in the same project permission flow as shell and edit tools.
|
|
203
|
+
|
|
204
|
+
In `ask` mode, the TUI can save:
|
|
205
|
+
|
|
206
|
+
- an exact-tool allow rule for `mcp__server__tool`, or
|
|
207
|
+
- a whole-server allow rule for all verified tools from one server.
|
|
208
|
+
|
|
209
|
+
Saved rules live in `<project>/.kolega/permissions.json`.
|
|
@@ -52,9 +52,11 @@ Gigacode is **off by default**. Toggle it with the `/gigacode`
|
|
|
52
52
|
| `/gigacode on` | Enable workflow orchestration for the session |
|
|
53
53
|
| `/gigacode off` | Disable it |
|
|
54
54
|
|
|
55
|
-
Once on, it stays on for
|
|
56
|
-
|
|
57
|
-
|
|
55
|
+
Once on, it stays on for that resumable session — if you quit and resume the same
|
|
56
|
+
session, the setting is restored. New sessions still start with Gigacode off. The
|
|
57
|
+
agent decides when a task is worth orchestrating. It works in both
|
|
58
|
+
[Build and Plan modes](../tui/modes/) — see [Behavior and safety](#behavior-and-safety)
|
|
59
|
+
for how each differs.
|
|
58
60
|
|
|
59
61
|
## What you'll see
|
|
60
62
|
|
|
@@ -679,11 +679,7 @@ class BaseAgent(LogMixin):
|
|
|
679
679
|
|
|
680
680
|
if usage_percentage >= 60:
|
|
681
681
|
alert_level = "info"
|
|
682
|
-
message =
|
|
683
|
-
"Longer threads consume more credits. "
|
|
684
|
-
f"Contents will be compressed automatically at {self.history_compression_threshold * 100:.0f}%. "
|
|
685
|
-
'You can start fresh by clicking "New Thread" in the sidebar.'
|
|
686
|
-
)
|
|
682
|
+
message = f"Contents will be compressed automatically at {self.history_compression_threshold * 100:.0f}%."
|
|
687
683
|
|
|
688
684
|
await self.emitter.context_update(
|
|
689
685
|
input_tokens=token_count.input_tokens,
|
kolega_code-0.13.0/kolega_code/agent/prompt_templates/extensions/cli/current_plan_artifact.md.j2
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
The current approved implementation plan is persisted as a private Markdown artifact at:
|
|
2
|
+
|
|
3
|
+
`{{ plan_artifact_path }}`
|
|
4
|
+
|
|
5
|
+
If the conversation has been compacted, context seems incomplete, or you need exact acceptance criteria, read the artifact with `read_entire_file` (or `read_file_section` if the file is large) before continuing.
|
|
6
|
+
|
|
7
|
+
Treat this artifact as read-only. Do not edit or overwrite it.
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
Implement the approved plan below. Follow it as the source of truth, but still inspect the code before editing and run appropriate checks.
|
|
2
|
+
{% if plan_artifact_path %}
|
|
3
|
+
|
|
4
|
+
The approved plan is also persisted at `{{ plan_artifact_path }}`. If the conversation is compacted or you need the exact plan again later, read that file with `read_entire_file` (or `read_file_section` if needed). Treat it as read-only.
|
|
5
|
+
{% endif %}
|
|
2
6
|
{% if gigacode_enabled %}
|
|
3
7
|
|
|
4
8
|
gigacode is enabled. If this plan splits into independent, non-overlapping workstreams (parts that don't edit the same files or depend on each other's output), implement them in parallel by authoring a workflow and calling `run_workflow` — fan out one coder sub-agent per workstream, then verify. Keep tightly-coupled or ordering-dependent changes sequential and do them directly yourself. If the plan is small or its parts are coupled, just implement it directly.
|
|
@@ -50,6 +50,9 @@ COMPRESSION_SUMMARY_USER_PROMPT_TEMPLATE = prompt_template_source("auxiliary/com
|
|
|
50
50
|
IMPLEMENT_PLAN_PROMPT_TEMPLATE = prompt_template_source("user_tasks/cli/implement_plan.md.j2").replace(
|
|
51
51
|
"{{ plan }}", "{plan}"
|
|
52
52
|
)
|
|
53
|
+
CURRENT_PLAN_ARTIFACT_PROMPT_TEMPLATE = prompt_template_source("extensions/cli/current_plan_artifact.md.j2").replace(
|
|
54
|
+
"{{ plan_artifact_path }}", "{plan_artifact_path}"
|
|
55
|
+
)
|
|
53
56
|
SKILL_CATALOG_PROMPT_TEMPLATE = prompt_template_source("extensions/skills/catalog.md.j2").replace(
|
|
54
57
|
"{{ catalog }}", "{catalog}"
|
|
55
58
|
)
|
|
@@ -64,8 +67,24 @@ def build_compression_summary_user_prompt(history: str, previous_summary: Option
|
|
|
64
67
|
)
|
|
65
68
|
|
|
66
69
|
|
|
67
|
-
def build_implement_plan_prompt(
|
|
68
|
-
|
|
70
|
+
def build_implement_plan_prompt(
|
|
71
|
+
plan: str,
|
|
72
|
+
gigacode_enabled: bool = False,
|
|
73
|
+
plan_artifact_path: Optional[str | Path] = None,
|
|
74
|
+
) -> str:
|
|
75
|
+
return render_prompt_template(
|
|
76
|
+
"user_tasks/cli/implement_plan.md.j2",
|
|
77
|
+
plan=plan,
|
|
78
|
+
gigacode_enabled=gigacode_enabled,
|
|
79
|
+
plan_artifact_path=str(plan_artifact_path) if plan_artifact_path else "",
|
|
80
|
+
)
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
def build_current_plan_artifact_prompt(plan_artifact_path: str | Path) -> str:
|
|
84
|
+
return render_prompt_template(
|
|
85
|
+
"extensions/cli/current_plan_artifact.md.j2",
|
|
86
|
+
plan_artifact_path=str(plan_artifact_path),
|
|
87
|
+
)
|
|
69
88
|
|
|
70
89
|
|
|
71
90
|
def build_init_agents_prompt(arguments: str) -> str:
|
|
@@ -42,6 +42,9 @@ class ToolExtension:
|
|
|
42
42
|
# schema is used verbatim instead of introspecting the callable signature,
|
|
43
43
|
# allowing nested input shapes the introspector cannot express.
|
|
44
44
|
tool_schemas: dict[str, dict[str, Any]] = field(default_factory=dict)
|
|
45
|
+
# Optional cleanup hook. May be sync or async; ToolCollection.cleanup awaits
|
|
46
|
+
# it when needed.
|
|
47
|
+
cleanup: Optional[Callable[[], Any]] = None
|
|
45
48
|
# Whether this extension is inherited by sub-agents. Interactive or
|
|
46
49
|
# session-shared host tools (task list, planning questions) belong to the
|
|
47
50
|
# single top-level agent only; leaving them on for parallel sub-agents lets
|
|
@@ -239,12 +242,17 @@ class ToolCollection(LogMixin):
|
|
|
239
242
|
self.read_only = tool_config.read_only
|
|
240
243
|
self.browser_only = tool_config.browser_only
|
|
241
244
|
|
|
242
|
-
# Build tool exclusions list from config
|
|
245
|
+
# Build tool exclusions list from config. These are internal
|
|
246
|
+
# management/logging APIs, not model-facing tools.
|
|
243
247
|
self.tool_exclusions = [
|
|
244
248
|
"read_memory",
|
|
245
249
|
"write_memory",
|
|
246
250
|
"execute_terminal_command",
|
|
247
251
|
"get_tool_list",
|
|
252
|
+
"registry",
|
|
253
|
+
"has_tool",
|
|
254
|
+
"call",
|
|
255
|
+
"cleanup",
|
|
248
256
|
"log_error",
|
|
249
257
|
"log_warning",
|
|
250
258
|
"log_info",
|
|
@@ -1472,9 +1480,9 @@ class ToolCollection(LogMixin):
|
|
|
1472
1480
|
"""True if the named tool is currently enabled."""
|
|
1473
1481
|
return name in self.registry()
|
|
1474
1482
|
|
|
1475
|
-
async def call(self,
|
|
1483
|
+
async def call(self, tool_name: str, /, **inputs: Any) -> Any:
|
|
1476
1484
|
"""Dispatch an enabled tool by name."""
|
|
1477
|
-
return await self.registry().call(
|
|
1485
|
+
return await self.registry().call(tool_name, **inputs)
|
|
1478
1486
|
|
|
1479
1487
|
def get_tool_list(self) -> List[ToolDefinition]:
|
|
1480
1488
|
"""
|
|
@@ -1582,6 +1590,18 @@ class ToolCollection(LogMixin):
|
|
|
1582
1590
|
except Exception as e:
|
|
1583
1591
|
print(f"Error cleaning up sub-agent {agent_id}: {e}")
|
|
1584
1592
|
|
|
1593
|
+
# Clean up host-provided tool extensions (MCP transports, etc.).
|
|
1594
|
+
for extension in self.tool_extensions:
|
|
1595
|
+
cleanup = getattr(extension, "cleanup", None)
|
|
1596
|
+
if cleanup is None:
|
|
1597
|
+
continue
|
|
1598
|
+
try:
|
|
1599
|
+
result = cleanup()
|
|
1600
|
+
if inspect.isawaitable(result):
|
|
1601
|
+
await result
|
|
1602
|
+
except Exception as e:
|
|
1603
|
+
print(f"Error cleaning up tool extension {extension.name}: {e}")
|
|
1604
|
+
|
|
1585
1605
|
except Exception as e:
|
|
1586
1606
|
await self.log_error(f"Error during tool cleanup: {str(e)}", sender="ToolCollection")
|
|
1587
1607
|
|