kolega-code 0.12.0__tar.gz → 0.14.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.14.0}/.gitignore +1 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/.pre-commit-config.yaml +10 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/CHANGELOG.md +51 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/CONTRIBUTING.md +24 -2
- {kolega_code-0.12.0 → kolega_code-0.14.0}/PKG-INFO +5 -1
- {kolega_code-0.12.0 → kolega_code-0.14.0}/README.md +2 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/docs/astro.config.mjs +10 -2
- {kolega_code-0.12.0 → kolega_code-0.14.0}/docs/package-lock.json +9 -9
- {kolega_code-0.12.0 → kolega_code-0.14.0}/docs/package.json +2 -2
- {kolega_code-0.12.0 → kolega_code-0.14.0}/docs/public/favicon.svg +1 -1
- {kolega_code-0.12.0 → kolega_code-0.14.0}/docs/src/assets/coverage.svg +1 -1
- kolega_code-0.14.0/docs/src/assets/kolega-dark.svg +15 -0
- kolega_code-0.14.0/docs/src/assets/kolega-light.svg +15 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/docs/src/content/docs/cli/ask.md +30 -1
- {kolega_code-0.12.0 → kolega_code-0.14.0}/docs/src/content/docs/cli/overview.md +1 -0
- kolega_code-0.14.0/docs/src/content/docs/configuration/mcp.md +209 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/docs/src/content/docs/configuration/providers-and-models.mdx +2 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/docs/src/content/docs/gigacode.mdx +5 -3
- kolega_code-0.14.0/docs/src/content/docs/goal.md +167 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/docs/src/content/docs/tui/interface.md +1 -1
- {kolega_code-0.12.0 → kolega_code-0.14.0}/docs/src/content/docs/tui/sessions-and-resume.md +2 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/docs/src/content/docs/tui/slash-commands.md +8 -0
- kolega_code-0.14.0/docs/src/styles/brand.css +461 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/__init__.py +1 -1
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/agent/__init__.py +1 -1
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/agent/baseagent.py +93 -19
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/agent/common.py +10 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/agent/context.py +2 -2
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/agent/conversation.py +4 -2
- kolega_code-0.14.0/kolega_code/agent/goal.py +114 -0
- kolega_code-0.14.0/kolega_code/agent/prompt_templates/extensions/cli/current_plan_artifact.md.j2 +7 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/agent/prompt_templates/user_tasks/cli/implement_plan.md.j2 +4 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/agent/prompts.py +21 -2
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/agent/tool_backend/agent_tool.py +4 -2
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/agent/tool_backend/base_tool.py +2 -1
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/agent/tool_backend/browser_tool.py +5 -5
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/agent/tool_backend/build_tool.py +1 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/agent/tool_backend/edit_preview.py +33 -9
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/agent/tool_backend/edit_tool.py +56 -5
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/agent/tool_backend/glob_tool.py +3 -1
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/agent/tool_backend/list_directory_tool.py +10 -4
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/agent/tool_backend/search_backends/firecrawl.py +1 -1
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/agent/tool_backend/terminal_tool.py +5 -3
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/agent/tool_backend/think_hard_tool.py +21 -10
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/agent/tools.py +35 -12
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/agent/utils/commands.py +5 -5
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/cli/app.py +160 -15
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/cli/config.py +14 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/cli/file_index.py +4 -1
- kolega_code-0.14.0/kolega_code/cli/goal.py +190 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/cli/main.py +449 -9
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/cli/messages.py +16 -0
- kolega_code-0.14.0/kolega_code/cli/plan_artifacts.py +49 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/cli/provider_registry.py +2 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/cli/session_store.py +7 -1
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/cli/settings.py +13 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/cli/slash_commands.py +1 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/cli/tui/agent_runtime.py +257 -18
- kolega_code-0.14.0/kolega_code/cli/tui/app_base.py +290 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/cli/tui/changes_screen.py +2 -1
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/cli/tui/command_handlers.py +90 -2
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/cli/tui/prompt_flows.py +11 -1
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/cli/tui/session_diff.py +55 -3
- kolega_code-0.14.0/kolega_code/cli/tui/settings_panel.py +1005 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/cli/tui/state.py +7 -1
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/cli/tui/status_dashboard.py +24 -5
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/cli/tui/styles.tcss +21 -1
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/cli/tui/transcript.py +5 -2
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/cli/tui/widgets.py +10 -4
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/config.py +4 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/llm/client.py +5 -5
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/llm/exceptions.py +25 -19
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/llm/instrumented_client.py +24 -18
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/llm/models.py +53 -24
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/llm/providers/anthropic.py +15 -11
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/llm/providers/base.py +7 -3
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/llm/providers/google.py +8 -6
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/llm/providers/models.py +5 -2
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/llm/providers/openai.py +16 -9
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/llm/specs/accessors.py +2 -2
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/llm/specs/catalog/anthropic.py +24 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/llm/specs/catalog/openai_chatgpt.py +3 -1
- kolega_code-0.14.0/kolega_code/local_state.py +65 -0
- kolega_code-0.14.0/kolega_code/mcp/__init__.py +26 -0
- kolega_code-0.14.0/kolega_code/mcp/config.py +310 -0
- kolega_code-0.14.0/kolega_code/mcp/oauth.py +241 -0
- kolega_code-0.14.0/kolega_code/mcp/service.py +483 -0
- kolega_code-0.14.0/kolega_code/mcp/state.py +211 -0
- kolega_code-0.14.0/kolega_code/mcp/tools.py +68 -0
- kolega_code-0.14.0/kolega_code/mcp/transport.py +123 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/permissions.py +73 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/sandbox/local.py +1 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/sandbox/serializer.py +4 -2
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/sandbox/terminal.py +6 -5
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/sandbox/utils.py +7 -2
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/services/browser.py +3 -3
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/services/file_system.py +11 -3
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/services/terminal.py +3 -1
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/tools/registry.py +2 -2
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/utils/images.py +9 -2
- {kolega_code-0.12.0 → kolega_code-0.14.0}/pyproject.toml +10 -1
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/llm/test_anthropic_token_counting.py +3 -3
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/llm/test_billing_openai_cache.py +8 -2
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/llm/test_chatgpt_live.py +8 -2
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/llm/test_chatgpt_oauth_provider_generate.py +11 -7
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/llm/test_chatgpt_oauth_streaming.py +4 -3
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/llm/test_client_runtime.py +6 -2
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/llm/test_exceptions.py +28 -11
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/llm/test_google_thought_signature.py +14 -11
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/llm/test_google_tool_signature_live.py +15 -8
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/llm/test_instrumented_client_integration.py +7 -3
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/llm/test_langfuse_normalization.py +3 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/llm/test_live_providers.py +18 -2
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/llm/test_message_conversion.py +9 -3
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/llm/test_model_specs.py +36 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/llm/test_openai_cached_tokens_stream.py +1 -1
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/llm/test_openai_message_conversion.py +2 -2
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/llm/test_openai_responses_provider.py +6 -5
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/llm/test_openai_token_counting.py +3 -3
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/llm/test_provider_usage_mapping.py +24 -2
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/llm/test_streaming_timeouts.py +4 -2
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/llm/test_supports_vision.py +2 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/llm/test_thinking_effort.py +10 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/llm/test_tool_execution_ids.py +37 -33
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/services/test_browser_integration.py +1 -1
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/services/test_local_file_system.py +10 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/services/test_sandbox_terminal_input.py +3 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/services/test_terminal.py +20 -10
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/services/test_terminal_state_serializer.py +24 -9
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/test_agent_tools_inventory.py +13 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/test_base_agent_compaction.py +1 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/test_base_agent_runtime.py +15 -6
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/test_coder_attachments.py +11 -5
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/test_compaction_tui_events.py +22 -10
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/test_compress_command.py +3 -2
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/test_compression.py +12 -1
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/test_gigacode_gating.py +2 -0
- kolega_code-0.14.0/tests/agent/test_goal.py +147 -0
- kolega_code-0.14.0/tests/agent/test_goal_evaluate.py +102 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/test_history_adapter_thinking.py +6 -2
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/test_history_image_blocks.py +1 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/test_hooks_integration.py +8 -8
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/test_parallel_tool_calls.py +5 -2
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/test_permissions.py +2 -2
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/test_prompt_overrides.py +18 -6
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/test_prompts.py +23 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/test_read_image_tool.py +20 -5
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/test_tool_collection_config.py +14 -1
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/test_tool_registry.py +59 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/tool_backend/test_agent_tool.py +5 -1
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/tool_backend/test_build_tool.py +41 -4
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/tool_backend/test_edit_preview.py +51 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/tool_backend/test_edit_tool.py +141 -1
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/tool_backend/test_web_fetch_tool.py +3 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/tool_backend/test_workflow_tool.py +1 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/cli/_app_test_utils.py +23 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/cli/test_app_agent_wiring.py +2 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/cli/test_app_bootstrap_settings.py +56 -3
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/cli/test_app_changes_inspector.py +8 -6
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/cli/test_app_composer_input.py +11 -9
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/cli/test_app_diagnostics.py +1 -0
- kolega_code-0.14.0/tests/cli/test_app_goal_command.py +612 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/cli/test_app_image_vision_warning.py +18 -18
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/cli/test_app_mention_dropdown.py +22 -1
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/cli/test_app_misc_commands.py +4 -2
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/cli/test_app_model_effort_commands.py +8 -2
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/cli/test_app_model_switch_vision.py +3 -3
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/cli/test_app_navigation_commands.py +6 -3
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/cli/test_app_persistence_history.py +15 -4
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/cli/test_app_plan_lifecycle.py +20 -1
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/cli/test_app_planning_questions.py +30 -15
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/cli/test_app_planning_restore.py +7 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/cli/test_app_rendering_entries.py +3 -6
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/cli/test_app_rendering_errors.py +1 -1
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/cli/test_app_rendering_selection.py +9 -2
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/cli/test_app_rendering_terminal_logs.py +3 -3
- kolega_code-0.14.0/tests/cli/test_app_session_diff_async.py +217 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/cli/test_app_skill_commands.py +3 -1
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/cli/test_app_slash_dropdown.py +9 -2
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/cli/test_app_status_modes.py +179 -5
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/cli/test_app_sub_agents_workflows.py +12 -3
- kolega_code-0.14.0/tests/cli/test_ask_goal.py +232 -0
- kolega_code-0.14.0/tests/cli/test_mcp_cli.py +144 -0
- kolega_code-0.14.0/tests/cli/test_mcp_settings_formatting.py +195 -0
- kolega_code-0.14.0/tests/cli/test_plan_artifacts.py +48 -0
- kolega_code-0.14.0/tests/cli/test_session_diff.py +303 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/cli/test_session_store.py +8 -1
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/cli/test_themes.py +3 -1
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/cli/test_tui_stylesheet.py +9 -3
- kolega_code-0.14.0/tests/mcp/test_config_state_tools.py +159 -0
- kolega_code-0.14.0/tests/test_mcp_permissions.py +35 -0
- kolega_code-0.14.0/tests/test_mcp_transport.py +216 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/tools/test_definitions.py +12 -1
- {kolega_code-0.12.0 → kolega_code-0.14.0}/uv.lock +332 -3
- kolega_code-0.12.0/docs/src/assets/kolega-dark.svg +0 -5
- kolega_code-0.12.0/docs/src/assets/kolega-light.svg +0 -5
- kolega_code-0.12.0/docs/src/styles/brand.css +0 -178
- 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.14.0}/.env.example +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/.githooks/pre-commit +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/.github/workflows/ci.yml +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/.github/workflows/docs.yml +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/.github/workflows/release.yml +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/LICENSE +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/RELEASING.md +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/SECURITY.md +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/docs/.gitignore +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/docs/README.md +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/docs/src/assets/demo.gif +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/docs/src/content/docs/cli/doctor.md +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/docs/src/content/docs/cli/sessions.md +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/docs/src/content/docs/concepts/agents.md +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/docs/src/content/docs/concepts/how-it-works.md +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/docs/src/content/docs/concepts/tools.md +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/docs/src/content/docs/configuration/environment-variables.md +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/docs/src/content/docs/configuration/prompt-overrides.md +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/docs/src/content/docs/configuration/settings-and-api-keys.mdx +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/docs/src/content/docs/configuration/sign-in-with-chatgpt.mdx +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/docs/src/content/docs/getting-started/installation.mdx +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/docs/src/content/docs/getting-started/quick-start.mdx +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/docs/src/content/docs/hooks.md +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/docs/src/content/docs/index.mdx +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/docs/src/content/docs/skills.mdx +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/docs/src/content/docs/troubleshooting/diagnostics.md +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/docs/src/content/docs/tui/composer.md +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/docs/src/content/docs/tui/modes.md +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/docs/src/content.config.ts +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/docs/tsconfig.json +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/agent/browseragent.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/agent/coder.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/agent/compression.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/agent/errors.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/agent/generalagent.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/agent/investigationagent.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/agent/orchestration/__init__.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/agent/orchestration/budget.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/agent/orchestration/errors.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/agent/orchestration/executor.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/agent/orchestration/guide.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/agent/orchestration/journal.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/agent/orchestration/runtime.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/agent/orchestration/types.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/agent/planningagent.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/agent/prompt_dump.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/agent/prompt_overrides.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/agent/prompt_provider.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/agent/prompt_templates/auxiliary/compression/summary.system.md +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/agent/prompt_templates/auxiliary/compression/summary.user.md.j2 +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/agent/prompt_templates/auxiliary/terminal/output_summary.system.md +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/agent/prompt_templates/auxiliary/terminal/safety.system.md +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/agent/prompt_templates/auxiliary/tools/think_hard.system.md +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/agent/prompt_templates/extensions/cli/planning_questions.md +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/agent/prompt_templates/extensions/cli/shared_task_list.md +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/agent/prompt_templates/extensions/skills/catalog.md.j2 +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/agent/prompt_templates/system/agents/browser.md.j2 +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/agent/prompt_templates/system/agents/coder_cli.md.j2 +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/agent/prompt_templates/system/agents/general.md.j2 +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/agent/prompt_templates/system/agents/investigation.md.j2 +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/agent/prompt_templates/system/agents/planning.md.j2 +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/agent/prompt_templates/system/includes/agents_md_instructions.md +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/agent/prompt_templates/system/includes/environment_variables/workspace_env_vars.md +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/agent/prompt_templates/system/includes/frontend_guidance.md +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/agent/prompt_templates/system/includes/starter_templates/expo.md +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/agent/prompt_templates/system/includes/starter_templates/html_website.md +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/agent/prompt_templates/system/includes/starter_templates/mern_stack.md +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/agent/prompt_templates/system/includes/starter_templates/react_vite_shadcdn.md +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/agent/prompt_templates/user_tasks/cli/init_agents.md.j2 +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/agent/tool_backend/memory_tool.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/agent/tool_backend/read_file_tool.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/agent/tool_backend/read_image_tool.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/agent/tool_backend/search_backends/__init__.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/agent/tool_backend/search_backends/base.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/agent/tool_backend/search_backends/duckduckgo.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/agent/tool_backend/search_backends/errors.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/agent/tool_backend/search_backends/models.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/agent/tool_backend/search_backends/searxng.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/agent/tool_backend/search_backends/tavily.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/agent/tool_backend/search_codebase_tool.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/agent/tool_backend/streaming_tool.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/agent/tool_backend/web_fetch_tool.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/agent/tool_backend/web_search_tool.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/agent/tool_backend/workflow_tool.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/auth/__init__.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/auth/_jwt.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/auth/chatgpt_oauth.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/auth/constants.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/auth/tokens.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/cli/__init__.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/cli/clipboard_image.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/cli/connection.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/cli/diagnostics.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/cli/mentions.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/cli/skills.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/cli/theme.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/cli/tui/__init__.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/cli/tui/constants.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/cli/tui/sub_agent_screen.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/cli/tui/terminal_display.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/cli/updater.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/events.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/hooks/__init__.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/hooks/backends.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/hooks/config.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/hooks/dispatcher.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/hooks/events.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/hooks/matcher.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/hooks/outcome.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/llm/providers/__init__.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/llm/providers/chatgpt_oauth.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/llm/providers/openai_responses.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/llm/providers/responses_common.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/llm/ratelimit.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/llm/specs/__init__.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/llm/specs/catalog/__init__.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/llm/specs/catalog/dashscope.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/llm/specs/catalog/deepseek.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/llm/specs/catalog/fireworks.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/llm/specs/catalog/google.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/llm/specs/catalog/kimi_coding.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/llm/specs/catalog/moonshot.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/llm/specs/catalog/ollama_cloud.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/llm/specs/catalog/openai.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/llm/specs/catalog/together.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/llm/specs/catalog/xai.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/llm/specs/catalog/zai.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/llm/specs/thinking.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/llm/specs/types.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/llm/timeouts.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/llm/tool_execution_ids.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/models/__init__.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/models/sandbox_terminal_state.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/runtime.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/sandbox/README.md +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/sandbox/__init__.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/sandbox/async_filesystem.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/sandbox/base.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/sandbox/browser.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/sandbox/event_loop.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/sandbox/filesystem.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/services/base.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/services/html.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/services/terminal_buffer.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/tools/__init__.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/tools/core.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/tools/definitions.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/kolega_code/utils/__init__.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/run_tests.sh +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/scripts/bench_hotpaths.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/scripts/check-dev-hooks.sh +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/scripts/install-kolega-code.sh +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/scripts/setup-dev.sh +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/__init__.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/__init__.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/compaction_helpers.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/conftest.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/llm/__init__.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/llm/_token_counting_utils.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/llm/test_anthropic_local_token_counting_incremental.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/llm/test_chatgpt_oauth_auth_config.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/llm/test_chatgpt_oauth_conversion.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/llm/test_chatgpt_oauth_provider.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/llm/test_client.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/llm/test_client_live.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/llm/test_dashscope_mapping.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/llm/test_error_boundary.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/llm/test_instrumented_client.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/llm/test_instrumented_client_stream.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/llm/test_openai_cached_tokens.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/llm/test_openai_reasoning_replay.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/llm/test_openai_stream_accumulation.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/llm/test_openai_token_counting_incremental.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/orchestration/__init__.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/orchestration/test_orchestration.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/services/__init__.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/services/test_browser.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/services/test_browser_console_logs.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/services/test_browser_content.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/services/test_browser_parity.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/services/test_file_system.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/services/test_file_system_integration.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/services/test_file_system_path.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/services/test_terminal_buffer.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/test_base_agent.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/test_base_agent_anthropic_history_validation.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/test_base_agent_effective_history.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/test_base_agent_history_serialization.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/test_base_agent_prompt_context.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/test_base_agent_role_overrides.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/test_base_agent_tool_call_repair.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/test_base_agent_tool_call_repair_integration.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/test_base_agent_tool_execution.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/test_coder_prompt_extensions.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/test_commands.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/test_compaction_integration.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/test_compaction_persistence.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/test_compaction_subagent.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/test_conversation_compaction.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/test_duplicate_tool_results.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/test_empty_message_handling.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/test_event_emitter.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/test_general_agent.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/test_html.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/test_image_compat.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/test_planning_agent.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/test_prompt_dump.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/test_prompt_provider.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/test_tool_collection_builtin_dispatch.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/test_tool_collection_extensions.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/test_tool_collection_initialization.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/test_tool_collection_memory.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/test_tools.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/tool_backend/__init__.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/tool_backend/test_base_tool.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/tool_backend/test_browser_tool.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/tool_backend/test_glob_tool.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/tool_backend/test_glob_tool_sandbox_parity.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/tool_backend/test_list_directory_tool.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/tool_backend/test_read_file_tool.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/tool_backend/test_search_codebase_tool.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/tool_backend/test_terminal_tool.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/tool_backend/test_think_hard_integration.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/tool_backend/test_think_hard_streaming.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/tool_backend/test_think_hard_streaming_content.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/tool_backend/test_think_hard_streaming_errors.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/tool_backend/test_think_hard_streaming_updates.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/agent/tool_backend/test_web_search_tool.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/auth/__init__.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/auth/test_chatgpt_oauth.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/auth/test_tokens.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/cli/__init__.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/cli/test_app.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/cli/test_app_compaction_restore.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/cli/test_app_composer_commands.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/cli/test_app_conversation_rendering.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/cli/test_app_focus_behavior.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/cli/test_app_modes_planning.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/cli/test_app_permission_prompts.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/cli/test_app_rendering_scroll.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/cli/test_app_rendering_status.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/cli/test_app_rendering_streaming.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/cli/test_app_rendering_tools.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/cli/test_cli_config.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/cli/test_clipboard_image.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/cli/test_connection.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/cli/test_diagnostics.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/cli/test_file_index.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/cli/test_main.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/cli/test_mentions.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/cli/test_provider_registry.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/cli/test_settings.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/cli/test_skills.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/cli/test_slash_commands.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/cli/test_sub_agent_stream_accumulation.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/cli/test_terminal_display.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/cli/test_transcript_streaming_render.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/cli/test_updater.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/conftest.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/hooks/__init__.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/hooks/test_hooks.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/tools/__init__.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/utils/__init__.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/utils/test_images.py +0 -0
- {kolega_code-0.12.0 → kolega_code-0.14.0}/tests/utils/test_images_ascii.py +0 -0
|
@@ -15,3 +15,13 @@ repos:
|
|
|
15
15
|
- id: check-yaml
|
|
16
16
|
- id: debug-statements
|
|
17
17
|
- id: detect-private-key
|
|
18
|
+
|
|
19
|
+
- repo: local
|
|
20
|
+
hooks:
|
|
21
|
+
- id: pyright
|
|
22
|
+
name: pyright type checker
|
|
23
|
+
entry: uv run pyright
|
|
24
|
+
language: system
|
|
25
|
+
types: [python]
|
|
26
|
+
pass_filenames: false
|
|
27
|
+
require_serial: true
|
|
@@ -6,6 +6,57 @@ This project uses GitHub Releases for detailed generated release notes. This fil
|
|
|
6
6
|
|
|
7
7
|
## Unreleased
|
|
8
8
|
|
|
9
|
+
## 0.14.0 - 2026-07-03
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
|
|
13
|
+
- Adopted Pyright static type checking (basic mode) across the codebase.
|
|
14
|
+
Pyright runs in pre-commit and CI, catching type errors before runtime. The
|
|
15
|
+
`[tool.pyright]` configuration lives in `pyproject.toml`. Run locally with
|
|
16
|
+
`uv run pyright`.
|
|
17
|
+
- Added support for Anthropic Claude Fable 5 (`claude-fable-5`) and Claude Sonnet 5
|
|
18
|
+
(`claude-sonnet-5`): 1M-token context, 128K max output, vision input, and
|
|
19
|
+
adaptive thinking with `low`/`medium`/`high`/`xhigh`/`max` effort levels. Both
|
|
20
|
+
are selectable in the Settings UI, `/model` picker, CLI flags, and env vars.
|
|
21
|
+
- Added a `/goal` slash command that sets an autonomous completion condition the
|
|
22
|
+
agent works toward. After each turn, a read-only investigation sub-agent
|
|
23
|
+
verifies whether the goal is met; if not, the agent is nudged to continue
|
|
24
|
+
automatically until the goal is met, a turn cap is hit, or the user
|
|
25
|
+
pauses/cancels. Also available as `kolega-code ask --goal <condition>` for
|
|
26
|
+
run-to-completion from the CLI. Goal state persists with the session.
|
|
27
|
+
|
|
28
|
+
### Fixed
|
|
29
|
+
|
|
30
|
+
- Handled CRLF line endings in the edit, multi_edit, and write tools so diffs
|
|
31
|
+
and patches apply correctly on Windows-originated files.
|
|
32
|
+
- Showed full diffs on the session changes screen instead of a capped preview.
|
|
33
|
+
- Kept the turn worker alive during goal verification so the agent does not
|
|
34
|
+
stall while checking autonomous goal conditions.
|
|
35
|
+
|
|
36
|
+
## 0.13.0 - 2026-07-02
|
|
37
|
+
|
|
38
|
+
### Added
|
|
39
|
+
|
|
40
|
+
- Added first-class MCP (Model Context Protocol) support in the CLI and TUI,
|
|
41
|
+
including server settings management.
|
|
42
|
+
- Persisted plan artifacts so they survive across CLI invocations.
|
|
43
|
+
|
|
44
|
+
### Changed
|
|
45
|
+
|
|
46
|
+
- Made session diff refreshes incremental and asynchronous for smoother TUI
|
|
47
|
+
performance.
|
|
48
|
+
|
|
49
|
+
### Fixed
|
|
50
|
+
|
|
51
|
+
- Hid queued follow-up messages from the transcript view.
|
|
52
|
+
- Polished status card spacing and made the context-full note generic.
|
|
53
|
+
- Avoided tool dispatcher input name collisions and excluded internal tool
|
|
54
|
+
collection methods from dispatch.
|
|
55
|
+
- Hardened MCP credential handling, status logging, config output, and server
|
|
56
|
+
settings reliability.
|
|
57
|
+
- Preserved gigacode enabled state across session resume.
|
|
58
|
+
- Corrected the GPT-5.5 context window to 272K on the Codex backend.
|
|
59
|
+
|
|
9
60
|
## 0.12.0 - 2026-06-30
|
|
10
61
|
|
|
11
62
|
### Added
|
|
@@ -57,12 +57,13 @@ to `.githooks`:
|
|
|
57
57
|
uv run pre-commit run --all-files --show-diff-on-failure
|
|
58
58
|
```
|
|
59
59
|
|
|
60
|
-
CI runs Ruff through pre-commit. You can also run
|
|
61
|
-
|
|
60
|
+
CI runs Ruff and Pyright through pre-commit. You can also run them directly for
|
|
61
|
+
one-off checks:
|
|
62
62
|
|
|
63
63
|
```bash
|
|
64
64
|
uv run ruff check .
|
|
65
65
|
uv run ruff format --check .
|
|
66
|
+
uv run pyright
|
|
66
67
|
```
|
|
67
68
|
|
|
68
69
|
To apply formatting locally:
|
|
@@ -71,6 +72,27 @@ To apply formatting locally:
|
|
|
71
72
|
uv run ruff format .
|
|
72
73
|
```
|
|
73
74
|
|
|
75
|
+
### Type checking
|
|
76
|
+
|
|
77
|
+
The project uses [Pyright](https://github.com/microsoft/pyright) in basic mode to
|
|
78
|
+
catch type errors before runtime. The configuration lives in `[tool.pyright]` in
|
|
79
|
+
`pyproject.toml`.
|
|
80
|
+
|
|
81
|
+
Run the type checker locally:
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
uv run pyright
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Guidelines for type annotations:
|
|
88
|
+
|
|
89
|
+
- All new code should have type annotations on function signatures and class
|
|
90
|
+
attributes.
|
|
91
|
+
- Use `# pyright: ignore[<rule>]` sparingly and only for third-party stub
|
|
92
|
+
limitations — never to silence errors in first-party code.
|
|
93
|
+
- Prefer narrowing `Optional` values with `assert` or `if` guards over ignoring
|
|
94
|
+
the error.
|
|
95
|
+
|
|
74
96
|
Run the fast test suite before opening a pull request:
|
|
75
97
|
|
|
76
98
|
```bash
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: kolega-code
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.14.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
|
|
@@ -254,6 +255,7 @@ Provides-Extra: cli
|
|
|
254
255
|
Provides-Extra: dev
|
|
255
256
|
Requires-Dist: genbadge[coverage]==1.1.3; extra == 'dev'
|
|
256
257
|
Requires-Dist: pre-commit==4.6.0; extra == 'dev'
|
|
258
|
+
Requires-Dist: pyright==1.1.411; extra == 'dev'
|
|
257
259
|
Requires-Dist: pytest-asyncio==1.3.0; extra == 'dev'
|
|
258
260
|
Requires-Dist: pytest-cov==7.0.0; extra == 'dev'
|
|
259
261
|
Requires-Dist: pytest==9.0.3; extra == 'dev'
|
|
@@ -323,6 +325,8 @@ enough that one serial agent pass would be the bottleneck.
|
|
|
323
325
|
- **Web search and browsing:** DuckDuckGo works by default with no key; Firecrawl,
|
|
324
326
|
Tavily, and SearXNG are configurable search backends. Kolega Code can also fetch URLs
|
|
325
327
|
directly and use a Playwright-powered browser agent for interactive sites.
|
|
328
|
+
- **MCP servers:** connect verified `streamable_http`, `sse`, and `stdio` MCP servers
|
|
329
|
+
(including OAuth-enabled HTTP servers) as permission-gated tools.
|
|
326
330
|
- **Model routing:** choose provider/model combinations, set thinking effort, split
|
|
327
331
|
long-context/fast/thinking roles, and override models per agent role.
|
|
328
332
|
- **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
|
|
@@ -23,8 +23,8 @@ export default defineConfig({
|
|
|
23
23
|
// Brand fonts (Geist) + the Kolega Code theme. Order matters: fonts first
|
|
24
24
|
// so the brand stylesheet can reference their family names.
|
|
25
25
|
customCss: [
|
|
26
|
-
"@fontsource-variable/
|
|
27
|
-
"@fontsource-variable/
|
|
26
|
+
"@fontsource-variable/ibm-plex-sans/index.css",
|
|
27
|
+
"@fontsource-variable/jetbrains-mono/index.css",
|
|
28
28
|
"./src/styles/brand.css",
|
|
29
29
|
],
|
|
30
30
|
social: [
|
|
@@ -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",
|
|
@@ -101,6 +105,10 @@ export default defineConfig({
|
|
|
101
105
|
label: "Gigacode",
|
|
102
106
|
items: [{ label: "Workflow Orchestration", slug: "gigacode" }],
|
|
103
107
|
},
|
|
108
|
+
{
|
|
109
|
+
label: "Autonomous Goals",
|
|
110
|
+
items: [{ label: "Goal-Conditioned Work", slug: "goal" }],
|
|
111
|
+
},
|
|
104
112
|
{
|
|
105
113
|
label: "Troubleshooting",
|
|
106
114
|
items: [
|
|
@@ -10,8 +10,8 @@
|
|
|
10
10
|
"license": "Apache-2.0",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@astrojs/starlight": "^0.40.0",
|
|
13
|
-
"@fontsource-variable/
|
|
14
|
-
"@fontsource-variable/
|
|
13
|
+
"@fontsource-variable/ibm-plex-sans": "^5.2.8",
|
|
14
|
+
"@fontsource-variable/jetbrains-mono": "^5.2.8",
|
|
15
15
|
"astro": "^6.4.7",
|
|
16
16
|
"sharp": "^0.34.0"
|
|
17
17
|
}
|
|
@@ -747,19 +747,19 @@
|
|
|
747
747
|
"@expressive-code/core": "^0.43.1"
|
|
748
748
|
}
|
|
749
749
|
},
|
|
750
|
-
"node_modules/@fontsource-variable/
|
|
751
|
-
"version": "5.2.
|
|
752
|
-
"resolved": "https://registry.npmjs.org/@fontsource-variable/
|
|
753
|
-
"integrity": "sha512-
|
|
750
|
+
"node_modules/@fontsource-variable/ibm-plex-sans": {
|
|
751
|
+
"version": "5.2.8",
|
|
752
|
+
"resolved": "https://registry.npmjs.org/@fontsource-variable/ibm-plex-sans/-/ibm-plex-sans-5.2.8.tgz",
|
|
753
|
+
"integrity": "sha512-n5PF2iFa0CZT0QYTPzxvZ39opC9LnU0zdoRccoADbs+Dtsd+lbXOZF7RNuIPHcQX1dKjF63sxnRImQIB5eD0Ag==",
|
|
754
754
|
"license": "OFL-1.1",
|
|
755
755
|
"funding": {
|
|
756
756
|
"url": "https://github.com/sponsors/ayuhito"
|
|
757
757
|
}
|
|
758
758
|
},
|
|
759
|
-
"node_modules/@fontsource-variable/
|
|
759
|
+
"node_modules/@fontsource-variable/jetbrains-mono": {
|
|
760
760
|
"version": "5.2.8",
|
|
761
|
-
"resolved": "https://registry.npmjs.org/@fontsource-variable/
|
|
762
|
-
"integrity": "sha512-
|
|
761
|
+
"resolved": "https://registry.npmjs.org/@fontsource-variable/jetbrains-mono/-/jetbrains-mono-5.2.8.tgz",
|
|
762
|
+
"integrity": "sha512-WBA9elru6Jdp5df2mES55wuOO0WIrn3kpXnI4+W2ek5u3ZgLS9XS4gmIlcQhiZOWEKl95meYdvK7xI+ETLCq/Q==",
|
|
763
763
|
"license": "OFL-1.1",
|
|
764
764
|
"funding": {
|
|
765
765
|
"url": "https://github.com/sponsors/ayuhito"
|
|
@@ -13,8 +13,8 @@
|
|
|
13
13
|
},
|
|
14
14
|
"dependencies": {
|
|
15
15
|
"@astrojs/starlight": "^0.40.0",
|
|
16
|
-
"@fontsource-variable/
|
|
17
|
-
"@fontsource-variable/
|
|
16
|
+
"@fontsource-variable/ibm-plex-sans": "^5.2.8",
|
|
17
|
+
"@fontsource-variable/jetbrains-mono": "^5.2.8",
|
|
18
18
|
"astro": "^6.4.7",
|
|
19
19
|
"sharp": "^0.34.0"
|
|
20
20
|
},
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
|
2
|
-
<rect width="24" height="24" rx="5" ry="5" fill="#
|
|
2
|
+
<rect width="24" height="24" rx="5" ry="5" fill="#39c5cf"/>
|
|
3
3
|
<path d="M7 8L3 12L7 16" stroke="#000000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" fill="none"/>
|
|
4
4
|
<path d="M17 8L21 12L17 16" stroke="#000000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" fill="none"/>
|
|
5
5
|
<path d="M10 20L14 4" stroke="#000000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" fill="none"/>
|
|
@@ -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.35%"><title>coverage: 80.35%</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.35%</text><text x="865" y="150" fill-opacity=".3" textLength="430">80.35%</text></g><text x="865" y="140" textLength="430">80.35%</text></g></g></svg>
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 290 30" width="290" height="30">
|
|
2
|
+
<defs>
|
|
3
|
+
<linearGradient id="g" x1="0" y1="0" x2="1" y2="0">
|
|
4
|
+
<stop offset="0%" stop-color="#39C5CF"/>
|
|
5
|
+
<stop offset="100%" stop-color="#9B7DD4"/>
|
|
6
|
+
</linearGradient>
|
|
7
|
+
</defs>
|
|
8
|
+
<text x="0" y="5" font-family="'JetBrains Mono','Cascadia Code','Fira Code',Menlo,Consolas,monospace" font-size="5" fill="url(#g)" font-weight="700" xml:space="preserve">
|
|
9
|
+
<tspan x="0" dy="0"> ██ ██ ██████ ██ ███████ ██████ █████ ██████ ██████ ██████ ███████</tspan>
|
|
10
|
+
<tspan x="0" dy="5.5"> ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██</tspan>
|
|
11
|
+
<tspan x="0" dy="5.5"> ████ ██ ██ ██ █████ ██ ███ ███████ ██ ██ ██ ██ ██ █████</tspan>
|
|
12
|
+
<tspan x="0" dy="5.5"> ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██</tspan>
|
|
13
|
+
<tspan x="0" dy="5.5"> ██ ██ ██████ ███████ ███████ ██████ ██ ██ ██████ ██████ ██████ ███████</tspan>
|
|
14
|
+
</text>
|
|
15
|
+
</svg>
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 290 30" width="290" height="30">
|
|
2
|
+
<defs>
|
|
3
|
+
<linearGradient id="g" x1="0" y1="0" x2="1" y2="0">
|
|
4
|
+
<stop offset="0%" stop-color="#0d7377"/>
|
|
5
|
+
<stop offset="100%" stop-color="#5a3d7a"/>
|
|
6
|
+
</linearGradient>
|
|
7
|
+
</defs>
|
|
8
|
+
<text x="0" y="5" font-family="'JetBrains Mono','Cascadia Code','Fira Code',Menlo,Consolas,monospace" font-size="5" fill="url(#g)" font-weight="700" xml:space="preserve">
|
|
9
|
+
<tspan x="0" dy="0"> ██ ██ ██████ ██ ███████ ██████ █████ ██████ ██████ ██████ ███████</tspan>
|
|
10
|
+
<tspan x="0" dy="5.5"> ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██</tspan>
|
|
11
|
+
<tspan x="0" dy="5.5"> ████ ██ ██ ██ █████ ██ ███ ███████ ██ ██ ██ ██ ██ █████</tspan>
|
|
12
|
+
<tspan x="0" dy="5.5"> ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██</tspan>
|
|
13
|
+
<tspan x="0" dy="5.5"> ██ ██ ██████ ███████ ███████ ██████ ██ ██ ██████ ██████ ██████ ███████</tspan>
|
|
14
|
+
</text>
|
|
15
|
+
</svg>
|
|
@@ -15,8 +15,10 @@ kolega-code ask "<prompt>" [options]
|
|
|
15
15
|
|
|
16
16
|
| Argument / option | Description |
|
|
17
17
|
| --- | --- |
|
|
18
|
-
| `prompt` | The prompt to send (required
|
|
18
|
+
| `prompt` | The prompt to send (optional when `--goal` is given; otherwise required) |
|
|
19
19
|
| `--project <PATH>` | Project directory to work in (default `.`) |
|
|
20
|
+
| `--goal <condition>` | Set an autonomous completion goal and loop until it is met or capped (no prompt required) |
|
|
21
|
+
| `--goal-max-turns <N>` | Maximum evaluation turns before an unmet goal gives up (default 50) |
|
|
20
22
|
| `--save` | Persist the session after the prompt completes |
|
|
21
23
|
| `--json` | Emit response chunks and events as JSON |
|
|
22
24
|
| `--browser-visible` | Launch visible Playwright browser windows |
|
|
@@ -77,6 +79,22 @@ it against the project's [Agent Skills](../../skills/):
|
|
|
77
79
|
- `kolega-code ask "/my-skill do the thing"` activates the skill and runs the
|
|
78
80
|
remaining prompt.
|
|
79
81
|
|
|
82
|
+
## Goal mode
|
|
83
|
+
|
|
84
|
+
Pass `--goal "<condition>"` to set an autonomous completion goal. The agent works
|
|
85
|
+
toward the goal, and after each turn a read-only verifier checks whether it's met.
|
|
86
|
+
The loop continues until the goal is met or the turn cap (default 50, override
|
|
87
|
+
with `--goal-max-turns`) is reached. The positional `prompt` is optional with
|
|
88
|
+
`--goal` — the CLI synthesizes the first work-turn message from the condition:
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
kolega-code ask --goal "all tests pass and ruff is clean" --project .
|
|
92
|
+
kolega-code ask "start by fixing the parser" --goal "all tests pass" --project .
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
See [Goal-Conditioned Work](../../goal/) for the loop behavior, safety model, and
|
|
96
|
+
JSON event details.
|
|
97
|
+
|
|
80
98
|
## JSON output
|
|
81
99
|
|
|
82
100
|
With `--json`, the command streams newline-delimited JSON objects, each tagged with
|
|
@@ -93,6 +111,8 @@ The stream includes:
|
|
|
93
111
|
| `chunk` | A streamed piece of the response |
|
|
94
112
|
| `event` | An agent event (sub-agent activity, tool calls, terminal output) |
|
|
95
113
|
| `skill` | Skill activation metadata |
|
|
114
|
+
| `goal_eval` | Emitted after each goal evaluation (with `--goal`): `met`, `turns`, `reason` |
|
|
115
|
+
| `goal_result` | Final goal outcome (with `--goal`): `met`, `turns`, `reason` |
|
|
96
116
|
| `summary` | A final object with the chunk count and `session_id` |
|
|
97
117
|
|
|
98
118
|
In plain (non-JSON) mode, the answer is written to **stdout** while sub-agent and
|
|
@@ -105,3 +125,12 @@ answer.
|
|
|
105
125
|
confirmations. If you pass `--permission-mode ask`, shell commands and file edits
|
|
106
126
|
prompt on stderr when stdin is interactive. Persisted allow rules are stored in
|
|
107
127
|
the project at `.kolega/permissions.json`.
|
|
128
|
+
|
|
129
|
+
## Exit codes
|
|
130
|
+
|
|
131
|
+
| Code | Meaning |
|
|
132
|
+
| --- | --- |
|
|
133
|
+
| `0` | Success (or: the goal was met when using `--goal`) |
|
|
134
|
+
| `1` | With `--goal`: the turn cap was reached without meeting the goal |
|
|
135
|
+
| `2` | Configuration / usage error (e.g. invalid provider, missing API key) |
|
|
136
|
+
| `130` | Interrupted (`Ctrl+C`) |
|
|
@@ -78,5 +78,6 @@ in [Settings & API Keys](../../configuration/settings-and-api-keys/).
|
|
|
78
78
|
| Code | Meaning |
|
|
79
79
|
| --- | --- |
|
|
80
80
|
| `0` | Success |
|
|
81
|
+
| `1` | Goal not met: `ask --goal` reached the turn cap without completing the goal |
|
|
81
82
|
| `2` | Configuration / usage error (e.g. invalid provider, missing API key, project path not found, Textual not installed) |
|
|
82
83
|
| `130` | Interrupted (`Ctrl+C`) |
|
|
@@ -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`.
|
|
@@ -171,6 +171,8 @@ models in the TUI.
|
|
|
171
171
|
|
|
172
172
|
| Provider/model | Values | Kolega Code default |
|
|
173
173
|
| --- | --- | --- |
|
|
174
|
+
| Anthropic `claude-fable-5` | `low`, `medium`, `high`, `xhigh`, `max` | `medium` |
|
|
175
|
+
| Anthropic `claude-sonnet-5` | `low`, `medium`, `high`, `xhigh`, `max` | `medium` |
|
|
174
176
|
| Anthropic `claude-opus-4-7` | `low`, `medium`, `high`, `xhigh`, `max` | `medium` |
|
|
175
177
|
| DeepSeek `deepseek-v4-pro` | `none`, `high`, `max` | `high` |
|
|
176
178
|
| Moonshot `kimi-k2.7-code` | `auto` | `auto` |
|
|
@@ -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
|
|