kolega-code 0.13.0__tar.gz → 0.15.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.13.0 → kolega_code-0.15.0}/.gitignore +1 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/.pre-commit-config.yaml +10 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/CHANGELOG.md +43 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/CONTRIBUTING.md +24 -2
- {kolega_code-0.13.0 → kolega_code-0.15.0}/PKG-INFO +2 -1
- {kolega_code-0.13.0 → kolega_code-0.15.0}/docs/astro.config.mjs +10 -2
- {kolega_code-0.13.0 → kolega_code-0.15.0}/docs/package-lock.json +9 -9
- {kolega_code-0.13.0 → kolega_code-0.15.0}/docs/package.json +2 -2
- {kolega_code-0.13.0 → kolega_code-0.15.0}/docs/public/favicon.svg +1 -1
- {kolega_code-0.13.0 → kolega_code-0.15.0}/docs/src/assets/coverage.svg +1 -1
- kolega_code-0.15.0/docs/src/assets/kolega-dark.svg +15 -0
- kolega_code-0.15.0/docs/src/assets/kolega-light.svg +15 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/docs/src/content/docs/cli/ask.md +30 -1
- {kolega_code-0.13.0 → kolega_code-0.15.0}/docs/src/content/docs/cli/overview.md +1 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/docs/src/content/docs/concepts/tools.md +3 -0
- kolega_code-0.15.0/docs/src/content/docs/configuration/lsp.md +121 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/docs/src/content/docs/configuration/providers-and-models.mdx +2 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/docs/src/content/docs/gigacode.mdx +10 -0
- kolega_code-0.15.0/docs/src/content/docs/goal.md +167 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/docs/src/content/docs/tui/interface.md +1 -1
- {kolega_code-0.13.0 → kolega_code-0.15.0}/docs/src/content/docs/tui/sessions-and-resume.md +2 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/docs/src/content/docs/tui/slash-commands.md +8 -0
- kolega_code-0.15.0/docs/src/styles/brand.css +461 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/__init__.py +1 -1
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/agent/__init__.py +1 -1
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/agent/baseagent.py +92 -14
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/agent/common.py +10 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/agent/context.py +2 -2
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/agent/conversation.py +4 -2
- kolega_code-0.15.0/kolega_code/agent/goal.py +114 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/agent/orchestration/guide.py +19 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/agent/tool_backend/agent_tool.py +4 -2
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/agent/tool_backend/base_tool.py +2 -1
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/agent/tool_backend/browser_tool.py +5 -5
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/agent/tool_backend/build_tool.py +1 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/agent/tool_backend/edit_preview.py +33 -9
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/agent/tool_backend/edit_tool.py +113 -9
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/agent/tool_backend/glob_tool.py +3 -1
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/agent/tool_backend/list_directory_tool.py +10 -4
- kolega_code-0.15.0/kolega_code/agent/tool_backend/lsp_tool.py +1069 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/agent/tool_backend/search_backends/firecrawl.py +1 -1
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/agent/tool_backend/terminal_tool.py +5 -3
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/agent/tool_backend/think_hard_tool.py +21 -10
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/agent/tools.py +290 -14
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/agent/utils/commands.py +5 -5
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/cli/app.py +56 -6
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/cli/config.py +4 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/cli/file_index.py +4 -1
- kolega_code-0.15.0/kolega_code/cli/goal.py +190 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/cli/main.py +145 -5
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/cli/messages.py +16 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/cli/provider_registry.py +2 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/cli/session_store.py +4 -1
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/cli/settings.py +19 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/cli/skills.py +289 -11
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/cli/slash_commands.py +2 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/cli/tui/agent_runtime.py +286 -11
- kolega_code-0.15.0/kolega_code/cli/tui/app_base.py +292 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/cli/tui/changes_screen.py +2 -1
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/cli/tui/command_handlers.py +97 -1
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/cli/tui/prompt_flows.py +2 -1
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/cli/tui/session_diff.py +1 -1
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/cli/tui/settings_panel.py +68 -4
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/cli/tui/state.py +1 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/cli/tui/status_dashboard.py +21 -3
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/cli/tui/transcript.py +23 -3
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/cli/tui/widgets.py +10 -4
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/config.py +11 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/llm/client.py +5 -5
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/llm/exceptions.py +21 -19
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/llm/instrumented_client.py +24 -18
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/llm/models.py +53 -24
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/llm/providers/anthropic.py +15 -11
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/llm/providers/base.py +7 -3
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/llm/providers/google.py +8 -6
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/llm/providers/models.py +5 -2
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/llm/providers/openai.py +16 -9
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/llm/specs/accessors.py +2 -2
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/llm/specs/catalog/anthropic.py +24 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/mcp/transport.py +2 -2
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/permissions.py +5 -1
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/sandbox/async_filesystem.py +26 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/sandbox/filesystem.py +20 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/sandbox/local.py +1 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/sandbox/serializer.py +4 -2
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/sandbox/terminal.py +6 -5
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/sandbox/utils.py +7 -2
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/services/browser.py +3 -3
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/services/file_system.py +35 -3
- kolega_code-0.15.0/kolega_code/services/lsp/__init__.py +55 -0
- kolega_code-0.15.0/kolega_code/services/lsp/client.py +397 -0
- kolega_code-0.15.0/kolega_code/services/lsp/config.py +134 -0
- kolega_code-0.15.0/kolega_code/services/lsp/detector.py +276 -0
- kolega_code-0.15.0/kolega_code/services/lsp/diagnostics.py +250 -0
- kolega_code-0.15.0/kolega_code/services/lsp/edits.py +489 -0
- kolega_code-0.15.0/kolega_code/services/lsp/manager.py +1553 -0
- kolega_code-0.15.0/kolega_code/services/lsp/registry.py +371 -0
- kolega_code-0.15.0/kolega_code/services/lsp/registry.yaml +482 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/services/terminal.py +3 -1
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/utils/images.py +9 -2
- {kolega_code-0.13.0 → kolega_code-0.15.0}/pyproject.toml +9 -1
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/llm/test_anthropic_token_counting.py +3 -3
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/llm/test_billing_openai_cache.py +8 -2
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/llm/test_chatgpt_live.py +8 -2
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/llm/test_chatgpt_oauth_provider_generate.py +11 -7
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/llm/test_chatgpt_oauth_streaming.py +4 -3
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/llm/test_client_runtime.py +6 -2
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/llm/test_exceptions.py +14 -10
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/llm/test_google_thought_signature.py +14 -11
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/llm/test_google_tool_signature_live.py +15 -8
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/llm/test_instrumented_client_integration.py +7 -3
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/llm/test_langfuse_normalization.py +3 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/llm/test_live_providers.py +18 -2
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/llm/test_message_conversion.py +9 -3
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/llm/test_model_specs.py +26 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/llm/test_openai_cached_tokens_stream.py +1 -1
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/llm/test_openai_message_conversion.py +2 -2
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/llm/test_openai_responses_provider.py +6 -5
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/llm/test_openai_token_counting.py +3 -3
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/llm/test_provider_usage_mapping.py +24 -2
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/llm/test_streaming_timeouts.py +4 -2
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/llm/test_supports_vision.py +2 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/llm/test_thinking_effort.py +10 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/llm/test_tool_execution_ids.py +37 -33
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/services/test_browser_integration.py +1 -1
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/services/test_local_file_system.py +10 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/services/test_sandbox_terminal_input.py +3 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/services/test_terminal.py +20 -10
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/services/test_terminal_state_serializer.py +24 -9
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/test_agent_tools_inventory.py +7 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/test_base_agent_compaction.py +1 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/test_base_agent_runtime.py +15 -6
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/test_coder_attachments.py +11 -5
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/test_compaction_tui_events.py +22 -10
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/test_compress_command.py +3 -2
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/test_compression.py +12 -1
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/test_gigacode_gating.py +2 -0
- kolega_code-0.15.0/tests/agent/test_goal.py +147 -0
- kolega_code-0.15.0/tests/agent/test_goal_evaluate.py +102 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/test_history_adapter_thinking.py +6 -2
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/test_history_image_blocks.py +1 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/test_hooks_integration.py +8 -8
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/test_parallel_tool_calls.py +5 -2
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/test_permissions.py +24 -2
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/test_prompt_overrides.py +18 -6
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/test_prompts.py +9 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/test_read_image_tool.py +20 -5
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/test_tool_collection_config.py +1 -1
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/test_tool_registry.py +1 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/tool_backend/test_agent_tool.py +5 -1
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/tool_backend/test_build_tool.py +41 -4
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/tool_backend/test_edit_preview.py +51 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/tool_backend/test_edit_tool.py +205 -1
- kolega_code-0.15.0/tests/agent/tool_backend/test_lsp_tool.py +595 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/tool_backend/test_web_fetch_tool.py +3 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/tool_backend/test_workflow_tool.py +1 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/cli/_app_test_utils.py +50 -57
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/cli/test_app_agent_wiring.py +10 -58
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/cli/test_app_bootstrap_settings.py +37 -264
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/cli/test_app_changes_inspector.py +3 -1
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/cli/test_app_compaction_restore.py +3 -25
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/cli/test_app_composer_input.py +16 -138
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/cli/test_app_diagnostics.py +1 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/cli/test_app_focus_behavior.py +2 -2
- kolega_code-0.15.0/tests/cli/test_app_goal_command.py +596 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/cli/test_app_image_vision_warning.py +20 -41
- kolega_code-0.15.0/tests/cli/test_app_lsp_settings_status.py +132 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/cli/test_app_mention_dropdown.py +22 -1
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/cli/test_app_misc_commands.py +10 -59
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/cli/test_app_model_effort_commands.py +25 -152
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/cli/test_app_model_switch_vision.py +4 -61
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/cli/test_app_navigation_commands.py +12 -61
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/cli/test_app_permission_prompts.py +2 -59
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/cli/test_app_persistence_history.py +44 -144
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/cli/test_app_plan_lifecycle.py +13 -143
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/cli/test_app_planning_questions.py +47 -147
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/cli/test_app_planning_restore.py +4 -64
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/cli/test_app_rendering_entries.py +8 -68
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/cli/test_app_rendering_errors.py +9 -63
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/cli/test_app_rendering_selection.py +15 -84
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/cli/test_app_rendering_status.py +5 -40
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/cli/test_app_rendering_streaming.py +10 -82
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/cli/test_app_rendering_terminal_logs.py +3 -3
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/cli/test_app_rendering_tools.py +71 -120
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/cli/test_app_skill_commands.py +8 -57
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/cli/test_app_slash_dropdown.py +9 -2
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/cli/test_app_status_modes.py +52 -224
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/cli/test_app_sub_agents_workflows.py +12 -3
- kolega_code-0.15.0/tests/cli/test_ask_goal.py +218 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/cli/test_main.py +18 -86
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/cli/test_mcp_settings_formatting.py +22 -12
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/cli/test_session_diff.py +9 -1
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/cli/test_session_store.py +3 -1
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/cli/test_settings.py +34 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/cli/test_skills.py +134 -1
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/cli/test_themes.py +4 -17
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/cli/test_tui_stylesheet.py +3 -42
- kolega_code-0.15.0/tests/services/lsp/_fake_server.py +637 -0
- kolega_code-0.15.0/tests/services/lsp/conftest.py +168 -0
- kolega_code-0.15.0/tests/services/lsp/test_client.py +351 -0
- kolega_code-0.15.0/tests/services/lsp/test_detector.py +76 -0
- kolega_code-0.15.0/tests/services/lsp/test_diagnostics.py +166 -0
- kolega_code-0.15.0/tests/services/lsp/test_edits.py +161 -0
- kolega_code-0.15.0/tests/services/lsp/test_integration.py +387 -0
- kolega_code-0.15.0/tests/services/lsp/test_lsp_edit_tool_integration.py +79 -0
- kolega_code-0.15.0/tests/services/lsp/test_manager.py +375 -0
- kolega_code-0.15.0/tests/services/lsp/test_project_config.py +153 -0
- kolega_code-0.15.0/tests/services/lsp/test_registry.py +133 -0
- kolega_code-0.15.0/tests/services/lsp/test_trust.py +113 -0
- kolega_code-0.15.0/tests/test_agent_config_serialization.py +74 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/tools/test_definitions.py +12 -1
- {kolega_code-0.13.0 → kolega_code-0.15.0}/uv.lock +17 -2
- kolega_code-0.13.0/docs/src/assets/kolega-dark.svg +0 -5
- kolega_code-0.13.0/docs/src/assets/kolega-light.svg +0 -5
- kolega_code-0.13.0/docs/src/styles/brand.css +0 -178
- {kolega_code-0.13.0 → kolega_code-0.15.0}/.env.example +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/.githooks/pre-commit +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/.github/workflows/ci.yml +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/.github/workflows/docs.yml +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/.github/workflows/release.yml +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/LICENSE +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/README.md +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/RELEASING.md +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/SECURITY.md +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/docs/.gitignore +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/docs/README.md +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/docs/src/assets/demo.gif +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/docs/src/content/docs/cli/doctor.md +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/docs/src/content/docs/cli/sessions.md +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/docs/src/content/docs/concepts/agents.md +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/docs/src/content/docs/concepts/how-it-works.md +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/docs/src/content/docs/configuration/environment-variables.md +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/docs/src/content/docs/configuration/mcp.md +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/docs/src/content/docs/configuration/prompt-overrides.md +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/docs/src/content/docs/configuration/settings-and-api-keys.mdx +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/docs/src/content/docs/configuration/sign-in-with-chatgpt.mdx +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/docs/src/content/docs/getting-started/installation.mdx +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/docs/src/content/docs/getting-started/quick-start.mdx +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/docs/src/content/docs/hooks.md +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/docs/src/content/docs/index.mdx +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/docs/src/content/docs/skills.mdx +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/docs/src/content/docs/troubleshooting/diagnostics.md +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/docs/src/content/docs/tui/composer.md +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/docs/src/content/docs/tui/modes.md +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/docs/src/content.config.ts +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/docs/tsconfig.json +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/agent/browseragent.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/agent/coder.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/agent/compression.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/agent/errors.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/agent/generalagent.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/agent/investigationagent.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/agent/orchestration/__init__.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/agent/orchestration/budget.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/agent/orchestration/errors.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/agent/orchestration/executor.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/agent/orchestration/journal.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/agent/orchestration/runtime.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/agent/orchestration/types.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/agent/planningagent.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/agent/prompt_dump.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/agent/prompt_overrides.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/agent/prompt_provider.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/agent/prompt_templates/auxiliary/compression/summary.system.md +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/agent/prompt_templates/auxiliary/compression/summary.user.md.j2 +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/agent/prompt_templates/auxiliary/terminal/output_summary.system.md +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/agent/prompt_templates/auxiliary/terminal/safety.system.md +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/agent/prompt_templates/auxiliary/tools/think_hard.system.md +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/agent/prompt_templates/extensions/cli/current_plan_artifact.md.j2 +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/agent/prompt_templates/extensions/cli/planning_questions.md +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/agent/prompt_templates/extensions/cli/shared_task_list.md +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/agent/prompt_templates/extensions/skills/catalog.md.j2 +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/agent/prompt_templates/system/agents/browser.md.j2 +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/agent/prompt_templates/system/agents/coder_cli.md.j2 +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/agent/prompt_templates/system/agents/general.md.j2 +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/agent/prompt_templates/system/agents/investigation.md.j2 +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/agent/prompt_templates/system/agents/planning.md.j2 +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/agent/prompt_templates/system/includes/agents_md_instructions.md +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/agent/prompt_templates/system/includes/environment_variables/workspace_env_vars.md +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/agent/prompt_templates/system/includes/frontend_guidance.md +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/agent/prompt_templates/system/includes/starter_templates/expo.md +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/agent/prompt_templates/system/includes/starter_templates/html_website.md +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/agent/prompt_templates/system/includes/starter_templates/mern_stack.md +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/agent/prompt_templates/system/includes/starter_templates/react_vite_shadcdn.md +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/agent/prompt_templates/user_tasks/cli/implement_plan.md.j2 +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/agent/prompt_templates/user_tasks/cli/init_agents.md.j2 +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/agent/prompts.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/agent/tool_backend/memory_tool.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/agent/tool_backend/read_file_tool.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/agent/tool_backend/read_image_tool.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/agent/tool_backend/search_backends/__init__.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/agent/tool_backend/search_backends/base.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/agent/tool_backend/search_backends/duckduckgo.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/agent/tool_backend/search_backends/errors.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/agent/tool_backend/search_backends/models.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/agent/tool_backend/search_backends/searxng.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/agent/tool_backend/search_backends/tavily.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/agent/tool_backend/search_codebase_tool.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/agent/tool_backend/streaming_tool.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/agent/tool_backend/web_fetch_tool.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/agent/tool_backend/web_search_tool.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/agent/tool_backend/workflow_tool.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/auth/__init__.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/auth/_jwt.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/auth/chatgpt_oauth.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/auth/constants.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/auth/tokens.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/cli/__init__.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/cli/clipboard_image.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/cli/connection.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/cli/diagnostics.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/cli/mentions.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/cli/plan_artifacts.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/cli/theme.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/cli/tui/__init__.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/cli/tui/constants.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/cli/tui/styles.tcss +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/cli/tui/sub_agent_screen.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/cli/tui/terminal_display.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/cli/updater.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/events.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/hooks/__init__.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/hooks/backends.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/hooks/config.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/hooks/dispatcher.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/hooks/events.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/hooks/matcher.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/hooks/outcome.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/llm/providers/__init__.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/llm/providers/chatgpt_oauth.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/llm/providers/openai_responses.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/llm/providers/responses_common.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/llm/ratelimit.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/llm/specs/__init__.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/llm/specs/catalog/__init__.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/llm/specs/catalog/dashscope.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/llm/specs/catalog/deepseek.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/llm/specs/catalog/fireworks.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/llm/specs/catalog/google.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/llm/specs/catalog/kimi_coding.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/llm/specs/catalog/moonshot.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/llm/specs/catalog/ollama_cloud.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/llm/specs/catalog/openai.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/llm/specs/catalog/openai_chatgpt.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/llm/specs/catalog/together.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/llm/specs/catalog/xai.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/llm/specs/catalog/zai.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/llm/specs/thinking.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/llm/specs/types.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/llm/timeouts.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/llm/tool_execution_ids.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/local_state.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/mcp/__init__.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/mcp/config.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/mcp/oauth.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/mcp/service.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/mcp/state.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/mcp/tools.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/models/__init__.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/models/sandbox_terminal_state.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/runtime.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/sandbox/README.md +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/sandbox/__init__.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/sandbox/base.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/sandbox/browser.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/sandbox/event_loop.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/services/base.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/services/html.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/services/terminal_buffer.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/tools/__init__.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/tools/core.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/tools/definitions.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/tools/registry.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/kolega_code/utils/__init__.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/run_tests.sh +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/scripts/bench_hotpaths.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/scripts/check-dev-hooks.sh +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/scripts/install-kolega-code.sh +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/scripts/setup-dev.sh +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/__init__.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/__init__.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/compaction_helpers.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/conftest.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/llm/__init__.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/llm/_token_counting_utils.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/llm/test_anthropic_local_token_counting_incremental.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/llm/test_chatgpt_oauth_auth_config.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/llm/test_chatgpt_oauth_conversion.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/llm/test_chatgpt_oauth_provider.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/llm/test_client.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/llm/test_client_live.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/llm/test_dashscope_mapping.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/llm/test_error_boundary.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/llm/test_instrumented_client.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/llm/test_instrumented_client_stream.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/llm/test_openai_cached_tokens.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/llm/test_openai_reasoning_replay.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/llm/test_openai_stream_accumulation.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/llm/test_openai_token_counting_incremental.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/orchestration/__init__.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/orchestration/test_orchestration.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/services/__init__.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/services/test_browser.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/services/test_browser_console_logs.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/services/test_browser_content.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/services/test_browser_parity.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/services/test_file_system.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/services/test_file_system_integration.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/services/test_file_system_path.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/services/test_terminal_buffer.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/test_base_agent.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/test_base_agent_anthropic_history_validation.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/test_base_agent_effective_history.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/test_base_agent_history_serialization.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/test_base_agent_prompt_context.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/test_base_agent_role_overrides.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/test_base_agent_tool_call_repair.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/test_base_agent_tool_call_repair_integration.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/test_base_agent_tool_execution.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/test_coder_prompt_extensions.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/test_commands.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/test_compaction_integration.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/test_compaction_persistence.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/test_compaction_subagent.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/test_conversation_compaction.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/test_duplicate_tool_results.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/test_empty_message_handling.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/test_event_emitter.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/test_general_agent.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/test_html.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/test_image_compat.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/test_planning_agent.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/test_prompt_dump.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/test_prompt_provider.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/test_tool_collection_builtin_dispatch.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/test_tool_collection_extensions.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/test_tool_collection_initialization.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/test_tool_collection_memory.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/test_tools.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/tool_backend/__init__.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/tool_backend/test_base_tool.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/tool_backend/test_browser_tool.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/tool_backend/test_glob_tool.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/tool_backend/test_glob_tool_sandbox_parity.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/tool_backend/test_list_directory_tool.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/tool_backend/test_read_file_tool.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/tool_backend/test_search_codebase_tool.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/tool_backend/test_terminal_tool.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/tool_backend/test_think_hard_integration.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/tool_backend/test_think_hard_streaming.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/tool_backend/test_think_hard_streaming_content.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/tool_backend/test_think_hard_streaming_errors.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/tool_backend/test_think_hard_streaming_updates.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/agent/tool_backend/test_web_search_tool.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/auth/__init__.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/auth/test_chatgpt_oauth.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/auth/test_tokens.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/cli/__init__.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/cli/test_app.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/cli/test_app_composer_commands.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/cli/test_app_conversation_rendering.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/cli/test_app_modes_planning.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/cli/test_app_rendering_scroll.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/cli/test_app_session_diff_async.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/cli/test_cli_config.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/cli/test_clipboard_image.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/cli/test_connection.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/cli/test_diagnostics.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/cli/test_file_index.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/cli/test_mcp_cli.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/cli/test_mentions.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/cli/test_plan_artifacts.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/cli/test_provider_registry.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/cli/test_slash_commands.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/cli/test_sub_agent_stream_accumulation.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/cli/test_terminal_display.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/cli/test_transcript_streaming_render.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/cli/test_updater.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/conftest.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/hooks/__init__.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/hooks/test_hooks.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/mcp/test_config_state_tools.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/test_mcp_permissions.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/test_mcp_transport.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/tools/__init__.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/utils/__init__.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.0}/tests/utils/test_images.py +0 -0
- {kolega_code-0.13.0 → kolega_code-0.15.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,49 @@ This project uses GitHub Releases for detailed generated release notes. This fil
|
|
|
6
6
|
|
|
7
7
|
## Unreleased
|
|
8
8
|
|
|
9
|
+
## 0.15.0 - 2026-07-07
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
|
|
13
|
+
- Added Language Server Protocol (LSP) integration with an agent-callable
|
|
14
|
+
read-only `lsp` tool (diagnostics, go-to-definition, references, hover,
|
|
15
|
+
document/workspace symbols, and status) and a trusted `lsp_edit` tool for
|
|
16
|
+
rename, formatting, and code actions. The `edit`, `multi_edit`, and `write`
|
|
17
|
+
tools now append LSP diagnostics to their results, with a `/lsp` status
|
|
18
|
+
command, detected-language status in the TUI wordmark, and a Settings toggle.
|
|
19
|
+
- Added bounded skill metadata rendering with a context-aware token budget.
|
|
20
|
+
The prompt catalog now uses skill name and description only, descriptions are
|
|
21
|
+
truncated before skills are omitted, and `list_skills` is queryable with
|
|
22
|
+
`max_results`.
|
|
23
|
+
- Documented composable workflow shapes in the Gigacode orchestration guide.
|
|
24
|
+
|
|
25
|
+
## 0.14.0 - 2026-07-03
|
|
26
|
+
|
|
27
|
+
### Added
|
|
28
|
+
|
|
29
|
+
- Adopted Pyright static type checking (basic mode) across the codebase.
|
|
30
|
+
Pyright runs in pre-commit and CI, catching type errors before runtime. The
|
|
31
|
+
`[tool.pyright]` configuration lives in `pyproject.toml`. Run locally with
|
|
32
|
+
`uv run pyright`.
|
|
33
|
+
- Added support for Anthropic Claude Fable 5 (`claude-fable-5`) and Claude Sonnet 5
|
|
34
|
+
(`claude-sonnet-5`): 1M-token context, 128K max output, vision input, and
|
|
35
|
+
adaptive thinking with `low`/`medium`/`high`/`xhigh`/`max` effort levels. Both
|
|
36
|
+
are selectable in the Settings UI, `/model` picker, CLI flags, and env vars.
|
|
37
|
+
- Added a `/goal` slash command that sets an autonomous completion condition the
|
|
38
|
+
agent works toward. After each turn, a read-only investigation sub-agent
|
|
39
|
+
verifies whether the goal is met; if not, the agent is nudged to continue
|
|
40
|
+
automatically until the goal is met, a turn cap is hit, or the user
|
|
41
|
+
pauses/cancels. Also available as `kolega-code ask --goal <condition>` for
|
|
42
|
+
run-to-completion from the CLI. Goal state persists with the session.
|
|
43
|
+
|
|
44
|
+
### Fixed
|
|
45
|
+
|
|
46
|
+
- Handled CRLF line endings in the edit, multi_edit, and write tools so diffs
|
|
47
|
+
and patches apply correctly on Windows-originated files.
|
|
48
|
+
- Showed full diffs on the session changes screen instead of a capped preview.
|
|
49
|
+
- Kept the turn worker alive during goal verification so the agent does not
|
|
50
|
+
stall while checking autonomous goal conditions.
|
|
51
|
+
|
|
9
52
|
## 0.13.0 - 2026-07-02
|
|
10
53
|
|
|
11
54
|
### 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.15.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/
|
|
@@ -255,6 +255,7 @@ Provides-Extra: cli
|
|
|
255
255
|
Provides-Extra: dev
|
|
256
256
|
Requires-Dist: genbadge[coverage]==1.1.3; extra == 'dev'
|
|
257
257
|
Requires-Dist: pre-commit==4.6.0; extra == 'dev'
|
|
258
|
+
Requires-Dist: pyright==1.1.411; extra == 'dev'
|
|
258
259
|
Requires-Dist: pytest-asyncio==1.3.0; extra == 'dev'
|
|
259
260
|
Requires-Dist: pytest-cov==7.0.0; extra == 'dev'
|
|
260
261
|
Requires-Dist: pytest==9.0.3; extra == 'dev'
|
|
@@ -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: [
|
|
@@ -68,6 +68,10 @@ export default defineConfig({
|
|
|
68
68
|
label: "MCP Servers",
|
|
69
69
|
slug: "configuration/mcp",
|
|
70
70
|
},
|
|
71
|
+
{
|
|
72
|
+
label: "Language Servers",
|
|
73
|
+
slug: "configuration/lsp",
|
|
74
|
+
},
|
|
71
75
|
{
|
|
72
76
|
label: "Environment Variables",
|
|
73
77
|
slug: "configuration/environment-variables",
|
|
@@ -105,6 +109,10 @@ export default defineConfig({
|
|
|
105
109
|
label: "Gigacode",
|
|
106
110
|
items: [{ label: "Workflow Orchestration", slug: "gigacode" }],
|
|
107
111
|
},
|
|
112
|
+
{
|
|
113
|
+
label: "Autonomous Goals",
|
|
114
|
+
items: [{ label: "Goal-Conditioned Work", slug: "goal" }],
|
|
115
|
+
},
|
|
108
116
|
{
|
|
109
117
|
label: "Troubleshooting",
|
|
110
118
|
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: 79.72%"><title>coverage: 79.72%</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">79.72%</text><text x="865" y="150" fill-opacity=".3" textLength="430">79.72%</text></g><text x="865" y="140" textLength="430">79.72%</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`) |
|
|
@@ -18,6 +18,9 @@ Read, search, and edit your project:
|
|
|
18
18
|
- `read_entire_file`, `read_file_section` — read file contents.
|
|
19
19
|
- `find_files_by_pattern` — glob-based file search.
|
|
20
20
|
- `search_codebase` — search the codebase by regular expression (ripgrep/grep), e.g. `foo|bar`.
|
|
21
|
+
- `lsp` — read diagnostics, symbols, definitions,
|
|
22
|
+
references, hover text, call hierarchy, and code action metadata from
|
|
23
|
+
[configured language servers](../../configuration/lsp/).
|
|
21
24
|
- Create and edit files — create new files and apply precise edits.
|
|
22
25
|
|
|
23
26
|
### Terminal
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Language servers
|
|
3
|
+
description: Configure LSP diagnostics, code intelligence, and trusted LSP edits.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Kolega Code can start local Language Server Protocol (LSP) servers for detected
|
|
7
|
+
project languages. LSP is enabled by default and is used for:
|
|
8
|
+
|
|
9
|
+
- diagnostics after `edit`, `multi_edit`, and `write`;
|
|
10
|
+
- the generic read-only `lsp` tool;
|
|
11
|
+
- the permission-gated `lsp_edit` tool;
|
|
12
|
+
- `/lsp` and the Settings tab status display.
|
|
13
|
+
|
|
14
|
+
The `lsp` tool remains read-only. Mutating LSP operations are exposed through
|
|
15
|
+
`lsp_edit`, which is treated like `edit`, `multi_edit`, and `write` for
|
|
16
|
+
permission prompts. Kolega Code does not expose raw arbitrary LSP requests.
|
|
17
|
+
|
|
18
|
+
## Tool operations
|
|
19
|
+
|
|
20
|
+
The generic `lsp` tool supports:
|
|
21
|
+
|
|
22
|
+
- `diagnostics` for file errors, warnings, and hints;
|
|
23
|
+
- `definition`, `type_definition`, `implementation`, `references`, and `hover`;
|
|
24
|
+
- `document_symbols` and `workspace_symbols`;
|
|
25
|
+
- `call_hierarchy` for incoming and outgoing calls;
|
|
26
|
+
- `code_actions` to list available quick fixes and refactors without applying them;
|
|
27
|
+
- `status`, `capabilities`, and `reload`.
|
|
28
|
+
|
|
29
|
+
Position operations use `path`, a 1-based `line`, and a `symbol` on that line.
|
|
30
|
+
Use `symbol#2` to select the second occurrence of a symbol on the same line.
|
|
31
|
+
`code_actions` includes an `action_id` for each action so a later `lsp_edit`
|
|
32
|
+
call can apply the exact server-provided action.
|
|
33
|
+
|
|
34
|
+
The mutating `lsp_edit` tool supports:
|
|
35
|
+
|
|
36
|
+
- `rename` for symbol rename;
|
|
37
|
+
- `rename_file` for file moves with `workspace/willRenameFiles` and
|
|
38
|
+
`workspace/didRenameFiles` notifications;
|
|
39
|
+
- `format_document` and `format_range`;
|
|
40
|
+
- `apply_code_action` by `action_id`, title/query, or index.
|
|
41
|
+
|
|
42
|
+
`lsp_edit` applies server-provided `WorkspaceEdit` payloads only. If the server
|
|
43
|
+
does not advertise or return an edit for an operation, Kolega Code reports that
|
|
44
|
+
the operation is unsupported instead of constructing a manual fallback edit.
|
|
45
|
+
Pass `apply: false` to preview the LSP edit without writing files.
|
|
46
|
+
|
|
47
|
+
## Project configuration
|
|
48
|
+
|
|
49
|
+
Create `<project>/.kolega/lsp.json` to override LSP behavior for a repository.
|
|
50
|
+
Project LSP config is trusted input because custom servers can execute local
|
|
51
|
+
binaries. Kolega Code ignores this file unless the session is started with
|
|
52
|
+
`--trust-lsp` or the project is listed in trusted LSP projects in user settings.
|
|
53
|
+
|
|
54
|
+
```json
|
|
55
|
+
{
|
|
56
|
+
"enabled": true,
|
|
57
|
+
"auto_diagnostics_on_edit": true,
|
|
58
|
+
"max_diagnostics": 20,
|
|
59
|
+
"auto_fallback": true,
|
|
60
|
+
"prompt_on_missing": true,
|
|
61
|
+
"disabled_languages": [],
|
|
62
|
+
"preferences": {
|
|
63
|
+
"python": "pyright"
|
|
64
|
+
},
|
|
65
|
+
"diagnostic_servers": ["ruff-lsp"],
|
|
66
|
+
"initialization_options": {
|
|
67
|
+
"pyright": {
|
|
68
|
+
"python": {
|
|
69
|
+
"analysis": {
|
|
70
|
+
"typeCheckingMode": "basic"
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
"workspace_configuration": {
|
|
76
|
+
"pyright": {
|
|
77
|
+
"python": {
|
|
78
|
+
"analysis": {
|
|
79
|
+
"typeCheckingMode": "basic"
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
},
|
|
84
|
+
"servers": {
|
|
85
|
+
"custom-python-lsp": {
|
|
86
|
+
"bin": "custom-lsp",
|
|
87
|
+
"args": ["--stdio"],
|
|
88
|
+
"languages": ["python"],
|
|
89
|
+
"env": {
|
|
90
|
+
"CUSTOM_LSP_MODE": "project"
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
The project file cannot change the user's global LSP kill switch: `enabled` is
|
|
98
|
+
accepted in user settings, but ignored from `.kolega/lsp.json`.
|
|
99
|
+
|
|
100
|
+
`preferences` chooses the preferred server for a language. If
|
|
101
|
+
`auto_fallback` is `false`, Kolega Code checks only the preferred server before
|
|
102
|
+
reporting the language as missing. If it is `true`, installed alternatives can be
|
|
103
|
+
used automatically.
|
|
104
|
+
|
|
105
|
+
`diagnostic_servers` starts additional servers for diagnostics alongside the
|
|
106
|
+
primary server. This is useful for setups such as Pyright plus Ruff.
|
|
107
|
+
|
|
108
|
+
`initialization_options` is sent in the LSP `initialize` request. Some servers
|
|
109
|
+
also ask for `workspace/configuration`; use `workspace_configuration` for those
|
|
110
|
+
responses, keyed first by server name and then by requested section.
|
|
111
|
+
|
|
112
|
+
## Status and troubleshooting
|
|
113
|
+
|
|
114
|
+
Run `/lsp` in the TUI to see detected languages, missing servers, active
|
|
115
|
+
sessions, and recent diagnostic counts. The Settings tab has a global LSP toggle;
|
|
116
|
+
changing it requires restarting the agent session.
|
|
117
|
+
|
|
118
|
+
If a server is missing, `/lsp` shows the server name and install guidance from
|
|
119
|
+
Kolega Code's bundled registry. You can suppress a language with
|
|
120
|
+
`disabled_languages` or point it at a custom server with `servers` and
|
|
121
|
+
`preferences`.
|
|
@@ -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` |
|
|
@@ -34,6 +34,9 @@ can:
|
|
|
34
34
|
modules, services, issues, or review targets.
|
|
35
35
|
- **Run judge panels** — ask several agents to evaluate a change or plan from
|
|
36
36
|
different angles, then reconcile disagreements.
|
|
37
|
+
- **Compose workflow shapes** — use sweeps, matrices, funnels, pipelines, triage
|
|
38
|
+
loops, and adversarial reviews when the task needs more structure than simple
|
|
39
|
+
parallelism.
|
|
37
40
|
- **Preserve artifacts** — save the workflow script, result files, transcripts, raw
|
|
38
41
|
JSONL, and resume journal so the run is inspectable after the fact.
|
|
39
42
|
|
|
@@ -99,6 +102,13 @@ findings = await parallel([
|
|
|
99
102
|
return findings
|
|
100
103
|
```
|
|
101
104
|
|
|
105
|
+
The stage names in a workflow are not fixed runtime types. The agent composes
|
|
106
|
+
shapes from the task: a broad audit might map surfaces, sweep reviewers across
|
|
107
|
+
them, verify findings adversarially, and synthesize; a planning task might funnel
|
|
108
|
+
unknowns through research and option comparison; a debugging task might cluster
|
|
109
|
+
failures, investigate root causes, test targeted fixes, and run a regression
|
|
110
|
+
review. All of those shapes are built from the same primitives above.
|
|
111
|
+
|
|
102
112
|
<Aside type="note">
|
|
103
113
|
Workflows are deterministic and **resumable**. Each run is saved under Kolega
|
|
104
114
|
Code's state directory (`workflows/<run-id>/`) with its script, full result files,
|