kolega-code 0.9.0__tar.gz → 0.11.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.9.0 → kolega_code-0.11.0}/.env.example +10 -2
- kolega_code-0.11.0/.github/workflows/ci.yml +204 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/.gitignore +1 -1
- {kolega_code-0.9.0 → kolega_code-0.11.0}/CHANGELOG.md +35 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/CONTRIBUTING.md +25 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/PKG-INFO +127 -59
- kolega_code-0.11.0/README.md +237 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/docs/astro.config.mjs +2 -2
- {kolega_code-0.9.0 → kolega_code-0.11.0}/docs/src/assets/coverage.svg +1 -1
- {kolega_code-0.9.0 → kolega_code-0.11.0}/docs/src/content/docs/concepts/how-it-works.md +29 -5
- {kolega_code-0.9.0 → kolega_code-0.11.0}/docs/src/content/docs/configuration/environment-variables.md +30 -42
- kolega_code-0.11.0/docs/src/content/docs/configuration/prompt-overrides.md +145 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/docs/src/content/docs/configuration/providers-and-models.mdx +6 -2
- {kolega_code-0.9.0 → kolega_code-0.11.0}/docs/src/content/docs/getting-started/quick-start.mdx +20 -4
- {kolega_code-0.9.0 → kolega_code-0.11.0}/docs/src/content/docs/gigacode.mdx +32 -11
- kolega_code-0.11.0/docs/src/content/docs/index.mdx +118 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/docs/src/content/docs/skills.mdx +2 -2
- {kolega_code-0.9.0 → kolega_code-0.11.0}/docs/src/content/docs/tui/composer.md +21 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/docs/src/content/docs/tui/interface.md +6 -1
- {kolega_code-0.9.0 → kolega_code-0.11.0}/docs/src/content/docs/tui/slash-commands.md +5 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/__init__.py +1 -1
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/agent/__init__.py +1 -1
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/agent/baseagent.py +104 -1
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/agent/browseragent.py +2 -9
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/agent/coder.py +2 -9
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/agent/compression.py +3 -1
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/agent/conversation.py +13 -2
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/agent/generalagent.py +2 -8
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/agent/investigationagent.py +2 -9
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/agent/planningagent.py +2 -29
- kolega_code-0.11.0/kolega_code/agent/prompt_dump.py +407 -0
- kolega_code-0.11.0/kolega_code/agent/prompt_overrides.py +197 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/agent/prompt_provider.py +89 -8
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/cli/app.py +189 -18
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/cli/config.py +134 -19
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/cli/main.py +73 -6
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/cli/messages.py +8 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/cli/provider_registry.py +1 -1
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/cli/slash_commands.py +2 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/cli/tui/agent_runtime.py +167 -26
- kolega_code-0.11.0/kolega_code/cli/tui/changes_screen.py +346 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/cli/tui/command_handlers.py +97 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/cli/tui/prompt_flows.py +14 -4
- kolega_code-0.11.0/kolega_code/cli/tui/session_diff.py +264 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/cli/tui/settings_panel.py +27 -10
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/cli/tui/state.py +27 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/cli/tui/styles.tcss +253 -26
- kolega_code-0.11.0/kolega_code/cli/tui/terminal_display.py +137 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/cli/tui/transcript.py +80 -5
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/cli/tui/widgets.py +2 -0
- kolega_code-0.11.0/kolega_code/llm/specs/__init__.py +27 -0
- kolega_code-0.11.0/kolega_code/llm/specs/accessors.py +56 -0
- kolega_code-0.11.0/kolega_code/llm/specs/catalog/__init__.py +41 -0
- kolega_code-0.11.0/kolega_code/llm/specs/catalog/anthropic.py +69 -0
- kolega_code-0.11.0/kolega_code/llm/specs/catalog/dashscope.py +15 -0
- kolega_code-0.11.0/kolega_code/llm/specs/catalog/deepseek.py +27 -0
- kolega_code-0.11.0/kolega_code/llm/specs/catalog/fireworks.py +84 -0
- kolega_code-0.11.0/kolega_code/llm/specs/catalog/google.py +27 -0
- kolega_code-0.11.0/kolega_code/llm/specs/catalog/kimi_coding.py +17 -0
- kolega_code-0.11.0/kolega_code/llm/specs/catalog/moonshot.py +38 -0
- kolega_code-0.11.0/kolega_code/llm/specs/catalog/ollama_cloud.py +325 -0
- kolega_code-0.11.0/kolega_code/llm/specs/catalog/openai.py +47 -0
- kolega_code-0.11.0/kolega_code/llm/specs/catalog/openai_chatgpt.py +55 -0
- kolega_code-0.11.0/kolega_code/llm/specs/catalog/together.py +15 -0
- kolega_code-0.11.0/kolega_code/llm/specs/catalog/xai.py +22 -0
- kolega_code-0.11.0/kolega_code/llm/specs/catalog/zai.py +29 -0
- kolega_code-0.11.0/kolega_code/llm/specs/thinking.py +100 -0
- kolega_code-0.11.0/kolega_code/llm/specs/types.py +11 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/services/terminal.py +51 -12
- {kolega_code-0.9.0 → kolega_code-0.11.0}/pyproject.toml +2 -2
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/llm/test_live_providers.py +22 -86
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/llm/test_openai_message_conversion.py +38 -1
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/services/test_terminal.py +43 -1
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/test_compression.py +57 -2
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/test_empty_message_handling.py +12 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/test_history_adapter_thinking.py +60 -0
- kolega_code-0.11.0/tests/agent/test_prompt_dump.py +163 -0
- kolega_code-0.11.0/tests/agent/test_prompt_overrides.py +280 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/cli/test_app_agent_wiring.py +1 -1
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/cli/test_app_bootstrap_settings.py +172 -6
- kolega_code-0.11.0/tests/cli/test_app_changes_inspector.py +256 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/cli/test_app_composer_input.py +258 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/cli/test_app_misc_commands.py +102 -1
- kolega_code-0.11.0/tests/cli/test_app_permission_prompts.py +675 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/cli/test_app_persistence_history.py +1 -1
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/cli/test_app_planning_questions.py +3 -3
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/cli/test_app_rendering_errors.py +3 -2
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/cli/test_app_rendering_status.py +11 -5
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/cli/test_app_rendering_streaming.py +44 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/cli/test_app_rendering_terminal_logs.py +92 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/cli/test_app_rendering_tools.py +2 -2
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/cli/test_cli_config.py +101 -1
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/cli/test_main.py +113 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/cli/test_provider_registry.py +9 -0
- kolega_code-0.11.0/tests/cli/test_session_diff.py +131 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/cli/test_slash_commands.py +6 -0
- kolega_code-0.11.0/tests/cli/test_terminal_display.py +42 -0
- kolega_code-0.11.0/tests/cli/test_tui_stylesheet.py +430 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/uv.lock +2 -2
- kolega_code-0.9.0/.github/workflows/ci.yml +0 -131
- kolega_code-0.9.0/README.md +0 -169
- kolega_code-0.9.0/docs/src/content/docs/index.mdx +0 -87
- kolega_code-0.9.0/kolega_code/llm/specs.py +0 -892
- kolega_code-0.9.0/tests/cli/test_app_permission_prompts.py +0 -262
- kolega_code-0.9.0/tests/cli/test_tui_stylesheet.py +0 -81
- {kolega_code-0.9.0 → kolega_code-0.11.0}/.githooks/pre-commit +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/.github/workflows/docs.yml +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/.github/workflows/release.yml +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/.pre-commit-config.yaml +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/LICENSE +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/RELEASING.md +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/SECURITY.md +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/docs/.gitignore +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/docs/README.md +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/docs/package-lock.json +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/docs/package.json +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/docs/public/favicon.svg +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/docs/src/assets/demo.gif +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/docs/src/assets/kolega-dark.svg +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/docs/src/assets/kolega-light.svg +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/docs/src/content/docs/cli/ask.md +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/docs/src/content/docs/cli/doctor.md +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/docs/src/content/docs/cli/overview.md +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/docs/src/content/docs/cli/sessions.md +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/docs/src/content/docs/concepts/agents.md +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/docs/src/content/docs/concepts/tools.md +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/docs/src/content/docs/configuration/settings-and-api-keys.mdx +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/docs/src/content/docs/configuration/sign-in-with-chatgpt.mdx +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/docs/src/content/docs/getting-started/installation.mdx +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/docs/src/content/docs/hooks.md +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/docs/src/content/docs/tui/modes.md +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/docs/src/content/docs/tui/sessions-and-resume.md +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/docs/src/content.config.ts +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/docs/src/styles/brand.css +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/docs/tsconfig.json +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/agent/common.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/agent/context.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/agent/errors.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/agent/orchestration/__init__.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/agent/orchestration/budget.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/agent/orchestration/errors.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/agent/orchestration/executor.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/agent/orchestration/guide.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/agent/orchestration/journal.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/agent/orchestration/runtime.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/agent/orchestration/types.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/agent/prompt_templates/auxiliary/compression/summary.system.md +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/agent/prompt_templates/auxiliary/compression/summary.user.md.j2 +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/agent/prompt_templates/auxiliary/terminal/output_summary.system.md +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/agent/prompt_templates/auxiliary/terminal/safety.system.md +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/agent/prompt_templates/auxiliary/tools/think_hard.system.md +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/agent/prompt_templates/extensions/cli/planning_questions.md +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/agent/prompt_templates/extensions/cli/shared_task_list.md +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/agent/prompt_templates/extensions/skills/catalog.md.j2 +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/agent/prompt_templates/system/agents/browser.md.j2 +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/agent/prompt_templates/system/agents/coder_cli.md.j2 +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/agent/prompt_templates/system/agents/general.md.j2 +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/agent/prompt_templates/system/agents/investigation.md.j2 +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/agent/prompt_templates/system/agents/planning.md.j2 +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/agent/prompt_templates/system/includes/agents_md_instructions.md +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/agent/prompt_templates/system/includes/environment_variables/workspace_env_vars.md +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/agent/prompt_templates/system/includes/frontend_guidance.md +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/agent/prompt_templates/system/includes/starter_templates/expo.md +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/agent/prompt_templates/system/includes/starter_templates/html_website.md +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/agent/prompt_templates/system/includes/starter_templates/mern_stack.md +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/agent/prompt_templates/system/includes/starter_templates/react_vite_shadcdn.md +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/agent/prompt_templates/user_tasks/cli/implement_plan.md.j2 +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/agent/prompt_templates/user_tasks/cli/init_agents.md.j2 +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/agent/prompts.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/agent/tool_backend/agent_tool.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/agent/tool_backend/base_tool.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/agent/tool_backend/browser_tool.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/agent/tool_backend/build_tool.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/agent/tool_backend/create_file_tool.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/agent/tool_backend/edit_preview.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/agent/tool_backend/glob_tool.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/agent/tool_backend/list_directory_tool.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/agent/tool_backend/memory_tool.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/agent/tool_backend/read_file_tool.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/agent/tool_backend/read_image_tool.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/agent/tool_backend/replace_entire_file_tool.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/agent/tool_backend/replace_lines_tool.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/agent/tool_backend/search_and_replace_tool.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/agent/tool_backend/search_backends/__init__.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/agent/tool_backend/search_backends/base.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/agent/tool_backend/search_backends/duckduckgo.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/agent/tool_backend/search_backends/errors.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/agent/tool_backend/search_backends/firecrawl.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/agent/tool_backend/search_backends/models.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/agent/tool_backend/search_backends/searxng.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/agent/tool_backend/search_backends/tavily.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/agent/tool_backend/search_codebase_tool.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/agent/tool_backend/streaming_tool.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/agent/tool_backend/terminal_tool.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/agent/tool_backend/think_hard_tool.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/agent/tool_backend/web_fetch_tool.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/agent/tool_backend/web_search_tool.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/agent/tool_backend/workflow_tool.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/agent/tools.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/agent/utils/commands.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/auth/__init__.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/auth/_jwt.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/auth/chatgpt_oauth.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/auth/constants.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/auth/tokens.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/cli/__init__.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/cli/clipboard_image.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/cli/connection.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/cli/file_index.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/cli/mentions.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/cli/session_store.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/cli/settings.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/cli/skills.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/cli/theme.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/cli/tui/__init__.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/cli/tui/constants.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/cli/tui/status_dashboard.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/cli/tui/sub_agent_screen.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/cli/updater.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/config.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/events.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/hooks/__init__.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/hooks/backends.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/hooks/config.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/hooks/dispatcher.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/hooks/events.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/hooks/matcher.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/hooks/outcome.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/llm/client.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/llm/exceptions.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/llm/instrumented_client.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/llm/models.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/llm/providers/__init__.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/llm/providers/anthropic.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/llm/providers/base.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/llm/providers/chatgpt_oauth.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/llm/providers/google.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/llm/providers/models.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/llm/providers/openai.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/llm/providers/openai_responses.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/llm/providers/responses_common.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/llm/ratelimit.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/llm/tool_execution_ids.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/local_state.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/models/__init__.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/models/sandbox_terminal_state.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/permissions.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/runtime.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/sandbox/README.md +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/sandbox/__init__.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/sandbox/async_filesystem.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/sandbox/base.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/sandbox/browser.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/sandbox/event_loop.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/sandbox/filesystem.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/sandbox/local.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/sandbox/serializer.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/sandbox/terminal.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/sandbox/utils.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/services/base.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/services/browser.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/services/file_system.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/services/html.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/services/terminal_buffer.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/tools/__init__.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/tools/core.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/tools/definitions.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/tools/registry.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/utils/__init__.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/kolega_code/utils/images.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/run_tests.sh +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/scripts/check-dev-hooks.sh +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/scripts/install-kolega-code.sh +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/scripts/setup-dev.sh +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/__init__.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/__init__.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/compaction_helpers.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/conftest.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/llm/__init__.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/llm/_token_counting_utils.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/llm/test_anthropic_token_counting.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/llm/test_billing_openai_cache.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/llm/test_chatgpt_live.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/llm/test_chatgpt_oauth_auth_config.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/llm/test_chatgpt_oauth_conversion.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/llm/test_chatgpt_oauth_provider.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/llm/test_chatgpt_oauth_provider_generate.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/llm/test_chatgpt_oauth_streaming.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/llm/test_client.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/llm/test_client_live.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/llm/test_client_runtime.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/llm/test_dashscope_mapping.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/llm/test_error_boundary.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/llm/test_exceptions.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/llm/test_google_thought_signature.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/llm/test_google_tool_signature_live.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/llm/test_instrumented_client.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/llm/test_instrumented_client_integration.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/llm/test_instrumented_client_stream.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/llm/test_langfuse_normalization.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/llm/test_message_conversion.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/llm/test_model_specs.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/llm/test_openai_cached_tokens.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/llm/test_openai_cached_tokens_stream.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/llm/test_openai_responses_provider.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/llm/test_openai_token_counting.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/llm/test_provider_usage_mapping.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/llm/test_supports_vision.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/llm/test_thinking_effort.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/llm/test_tool_execution_ids.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/orchestration/__init__.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/orchestration/test_orchestration.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/services/__init__.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/services/test_browser.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/services/test_browser_console_logs.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/services/test_browser_content.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/services/test_browser_integration.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/services/test_browser_parity.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/services/test_file_system.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/services/test_file_system_integration.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/services/test_file_system_path.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/services/test_local_file_system.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/services/test_sandbox_terminal_input.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/services/test_terminal_buffer.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/services/test_terminal_state_serializer.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/test_agent_tools_inventory.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/test_base_agent.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/test_base_agent_anthropic_history_validation.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/test_base_agent_compaction.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/test_base_agent_effective_history.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/test_base_agent_history_serialization.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/test_base_agent_prompt_context.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/test_base_agent_role_overrides.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/test_base_agent_runtime.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/test_base_agent_tool_call_repair.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/test_base_agent_tool_call_repair_integration.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/test_base_agent_tool_execution.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/test_coder_attachments.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/test_coder_prompt_extensions.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/test_commands.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/test_compaction_integration.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/test_compaction_persistence.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/test_compaction_subagent.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/test_compaction_tui_events.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/test_compress_command.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/test_conversation_compaction.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/test_duplicate_tool_results.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/test_event_emitter.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/test_general_agent.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/test_gigacode_gating.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/test_history_image_blocks.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/test_hooks_integration.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/test_html.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/test_image_compat.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/test_parallel_tool_calls.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/test_permissions.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/test_planning_agent.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/test_prompt_provider.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/test_prompts.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/test_read_image_tool.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/test_tool_collection_builtin_dispatch.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/test_tool_collection_config.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/test_tool_collection_extensions.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/test_tool_collection_initialization.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/test_tool_collection_memory.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/test_tool_registry.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/test_tools.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/tool_backend/__init__.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/tool_backend/test_agent_tool.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/tool_backend/test_base_tool.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/tool_backend/test_browser_tool.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/tool_backend/test_build_tool.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/tool_backend/test_create_file_tool.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/tool_backend/test_edit_preview.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/tool_backend/test_glob_tool.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/tool_backend/test_glob_tool_sandbox_parity.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/tool_backend/test_list_directory_tool.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/tool_backend/test_read_file_tool.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/tool_backend/test_replace_entire_file_tool.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/tool_backend/test_replace_lines_tool.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/tool_backend/test_search_and_replace_tool.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/tool_backend/test_search_codebase_tool.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/tool_backend/test_terminal_tool.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/tool_backend/test_think_hard_integration.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/tool_backend/test_think_hard_streaming.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/tool_backend/test_think_hard_streaming_content.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/tool_backend/test_think_hard_streaming_errors.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/tool_backend/test_think_hard_streaming_updates.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/tool_backend/test_web_fetch_tool.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/tool_backend/test_web_search_tool.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/agent/tool_backend/test_workflow_tool.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/auth/__init__.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/auth/test_chatgpt_oauth.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/auth/test_tokens.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/cli/__init__.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/cli/_app_test_utils.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/cli/test_app.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/cli/test_app_compaction_restore.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/cli/test_app_composer_commands.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/cli/test_app_conversation_rendering.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/cli/test_app_focus_behavior.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/cli/test_app_image_vision_warning.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/cli/test_app_mention_dropdown.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/cli/test_app_model_effort_commands.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/cli/test_app_model_switch_vision.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/cli/test_app_modes_planning.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/cli/test_app_navigation_commands.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/cli/test_app_plan_lifecycle.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/cli/test_app_planning_restore.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/cli/test_app_rendering_entries.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/cli/test_app_rendering_scroll.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/cli/test_app_rendering_selection.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/cli/test_app_skill_commands.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/cli/test_app_slash_dropdown.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/cli/test_app_status_modes.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/cli/test_app_sub_agents_workflows.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/cli/test_clipboard_image.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/cli/test_connection.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/cli/test_file_index.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/cli/test_mentions.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/cli/test_session_store.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/cli/test_settings.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/cli/test_skills.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/cli/test_themes.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/cli/test_updater.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/conftest.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/hooks/__init__.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/hooks/test_hooks.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/tools/__init__.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/tools/test_definitions.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/utils/__init__.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/utils/test_images.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.11.0}/tests/utils/test_images_ascii.py +0 -0
|
@@ -1,5 +1,13 @@
|
|
|
1
|
-
#
|
|
2
|
-
#
|
|
1
|
+
# Developer/test credentials for this repository.
|
|
2
|
+
#
|
|
3
|
+
# Installed Kolega Code does NOT automatically load a target project's `.env`
|
|
4
|
+
# for its own provider/model configuration. For normal CLI use, save keys in the
|
|
5
|
+
# Settings tab or export environment variables in the shell that launches
|
|
6
|
+
# `kolega-code`.
|
|
7
|
+
#
|
|
8
|
+
# This sample exists for repository-local development and live integration tests.
|
|
9
|
+
# Copy it to `.env` only in this repo, fill only the keys you need, and never
|
|
10
|
+
# commit real secrets.
|
|
3
11
|
|
|
4
12
|
ANTHROPIC_API_KEY=
|
|
5
13
|
OPENAI_API_KEY=
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
pull_request:
|
|
5
|
+
branches: [main]
|
|
6
|
+
types: [opened, synchronize, reopened, ready_for_review]
|
|
7
|
+
push:
|
|
8
|
+
branches: [main]
|
|
9
|
+
workflow_dispatch:
|
|
10
|
+
|
|
11
|
+
permissions:
|
|
12
|
+
contents: read
|
|
13
|
+
|
|
14
|
+
concurrency:
|
|
15
|
+
group: ci-${{ github.workflow }}-${{ github.ref }}
|
|
16
|
+
cancel-in-progress: true
|
|
17
|
+
|
|
18
|
+
jobs:
|
|
19
|
+
changes:
|
|
20
|
+
name: Detect changed files
|
|
21
|
+
runs-on: ubuntu-latest
|
|
22
|
+
permissions:
|
|
23
|
+
contents: read
|
|
24
|
+
pull-requests: read
|
|
25
|
+
outputs:
|
|
26
|
+
coverage-badge-only: ${{ steps.detect.outputs.coverage-badge-only }}
|
|
27
|
+
steps:
|
|
28
|
+
- name: Detect coverage-badge-only change
|
|
29
|
+
id: detect
|
|
30
|
+
env:
|
|
31
|
+
GH_TOKEN: ${{ github.token }}
|
|
32
|
+
run: |
|
|
33
|
+
if [ "${{ github.event_name }}" = "pull_request" ]; then
|
|
34
|
+
files=$(gh api "repos/${{ github.repository }}/pulls/${{ github.event.pull_request.number }}/files" --paginate --jq '.[].filename')
|
|
35
|
+
elif [ "${{ github.event_name }}" = "push" ]; then
|
|
36
|
+
files=$(gh api "repos/${{ github.repository }}/compare/${{ github.event.before }}...${{ github.sha }}" --jq '.files[].filename')
|
|
37
|
+
else
|
|
38
|
+
echo "coverage-badge-only=false" >> "$GITHUB_OUTPUT"
|
|
39
|
+
exit 0
|
|
40
|
+
fi
|
|
41
|
+
|
|
42
|
+
echo "Changed files:"
|
|
43
|
+
echo "$files"
|
|
44
|
+
|
|
45
|
+
file_count=$(printf '%s\n' "$files" | sed '/^$/d' | wc -l | tr -d ' ')
|
|
46
|
+
if [ "$file_count" = "1" ] && [ "$files" = "docs/src/assets/coverage.svg" ]; then
|
|
47
|
+
echo "coverage-badge-only=true" >> "$GITHUB_OUTPUT"
|
|
48
|
+
else
|
|
49
|
+
echo "coverage-badge-only=false" >> "$GITHUB_OUTPUT"
|
|
50
|
+
fi
|
|
51
|
+
|
|
52
|
+
tests:
|
|
53
|
+
name: Python ${{ matrix.python-version }}
|
|
54
|
+
needs: changes
|
|
55
|
+
runs-on: ubuntu-latest
|
|
56
|
+
strategy:
|
|
57
|
+
fail-fast: false
|
|
58
|
+
matrix:
|
|
59
|
+
python-version: ["3.11", "3.12"]
|
|
60
|
+
|
|
61
|
+
steps:
|
|
62
|
+
- name: Skip coverage-badge-only change
|
|
63
|
+
if: needs.changes.outputs.coverage-badge-only == 'true'
|
|
64
|
+
run: echo "Skipping Python checks for coverage badge-only change."
|
|
65
|
+
|
|
66
|
+
- name: Checkout
|
|
67
|
+
if: needs.changes.outputs.coverage-badge-only != 'true'
|
|
68
|
+
uses: actions/checkout@v5
|
|
69
|
+
|
|
70
|
+
- name: Setup Python
|
|
71
|
+
if: needs.changes.outputs.coverage-badge-only != 'true'
|
|
72
|
+
uses: actions/setup-python@v6
|
|
73
|
+
with:
|
|
74
|
+
python-version: ${{ matrix.python-version }}
|
|
75
|
+
|
|
76
|
+
- name: Setup uv
|
|
77
|
+
if: needs.changes.outputs.coverage-badge-only != 'true'
|
|
78
|
+
uses: astral-sh/setup-uv@v7
|
|
79
|
+
with:
|
|
80
|
+
enable-cache: true
|
|
81
|
+
cache-dependency-glob: uv.lock
|
|
82
|
+
|
|
83
|
+
- name: Install dependencies
|
|
84
|
+
if: needs.changes.outputs.coverage-badge-only != 'true'
|
|
85
|
+
run: uv sync --extra dev --frozen
|
|
86
|
+
|
|
87
|
+
- name: Run pre-commit hooks
|
|
88
|
+
if: needs.changes.outputs.coverage-badge-only != 'true'
|
|
89
|
+
run: uv run pre-commit run --all-files --show-diff-on-failure
|
|
90
|
+
|
|
91
|
+
- name: Run fast tests with coverage
|
|
92
|
+
if: needs.changes.outputs.coverage-badge-only != 'true'
|
|
93
|
+
run: ./run_tests.sh --coverage
|
|
94
|
+
|
|
95
|
+
- name: Upload coverage report
|
|
96
|
+
if: needs.changes.outputs.coverage-badge-only != 'true'
|
|
97
|
+
uses: actions/upload-artifact@v6
|
|
98
|
+
with:
|
|
99
|
+
name: coverage-xml-python-${{ matrix.python-version }}
|
|
100
|
+
path: coverage.xml
|
|
101
|
+
if-no-files-found: error
|
|
102
|
+
|
|
103
|
+
coverage-badge:
|
|
104
|
+
name: Update coverage badge
|
|
105
|
+
needs: [changes, tests]
|
|
106
|
+
if: github.event_name == 'push' && github.ref == 'refs/heads/main' && needs.changes.outputs.coverage-badge-only != 'true'
|
|
107
|
+
runs-on: ubuntu-latest
|
|
108
|
+
permissions:
|
|
109
|
+
contents: write
|
|
110
|
+
pull-requests: write
|
|
111
|
+
steps:
|
|
112
|
+
- name: Checkout
|
|
113
|
+
uses: actions/checkout@v5
|
|
114
|
+
|
|
115
|
+
- name: Setup Python
|
|
116
|
+
uses: actions/setup-python@v6
|
|
117
|
+
with:
|
|
118
|
+
python-version: "3.11"
|
|
119
|
+
|
|
120
|
+
- name: Setup uv
|
|
121
|
+
uses: astral-sh/setup-uv@v7
|
|
122
|
+
with:
|
|
123
|
+
enable-cache: true
|
|
124
|
+
cache-dependency-glob: uv.lock
|
|
125
|
+
|
|
126
|
+
- name: Install dependencies
|
|
127
|
+
run: uv sync --extra dev --frozen
|
|
128
|
+
|
|
129
|
+
- name: Download Python 3.11 coverage report
|
|
130
|
+
uses: actions/download-artifact@v8
|
|
131
|
+
with:
|
|
132
|
+
name: coverage-xml-python-3.11
|
|
133
|
+
path: coverage-artifact
|
|
134
|
+
|
|
135
|
+
- name: Generate coverage badge
|
|
136
|
+
run: |
|
|
137
|
+
uv run genbadge coverage -i coverage-artifact/coverage.xml -o docs/src/assets/coverage.svg
|
|
138
|
+
python - <<'PY'
|
|
139
|
+
from pathlib import Path
|
|
140
|
+
|
|
141
|
+
badge = Path("docs/src/assets/coverage.svg")
|
|
142
|
+
badge.write_text(badge.read_text().rstrip("\n") + "\n")
|
|
143
|
+
PY
|
|
144
|
+
|
|
145
|
+
- name: Verify coverage badge PR token
|
|
146
|
+
env:
|
|
147
|
+
COVERAGE_BADGE_PR_TOKEN: ${{ secrets.COVERAGE_BADGE_PR_TOKEN }}
|
|
148
|
+
run: |
|
|
149
|
+
if [ -z "$COVERAGE_BADGE_PR_TOKEN" ]; then
|
|
150
|
+
echo "::error::Set the COVERAGE_BADGE_PR_TOKEN repository secret to a trusted bot/user token."
|
|
151
|
+
exit 1
|
|
152
|
+
fi
|
|
153
|
+
|
|
154
|
+
- name: Create coverage badge pull request
|
|
155
|
+
id: cpr
|
|
156
|
+
uses: peter-evans/create-pull-request@v8
|
|
157
|
+
with:
|
|
158
|
+
token: ${{ secrets.COVERAGE_BADGE_PR_TOKEN }}
|
|
159
|
+
add-paths: docs/src/assets/coverage.svg
|
|
160
|
+
commit-message: "chore: update coverage badge"
|
|
161
|
+
committer: "${{ vars.COVERAGE_BADGE_COMMITTER || 'github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>' }}"
|
|
162
|
+
author: "${{ vars.COVERAGE_BADGE_AUTHOR || 'github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>' }}"
|
|
163
|
+
branch: chore/update-coverage-badge
|
|
164
|
+
delete-branch: true
|
|
165
|
+
title: "chore: update coverage badge"
|
|
166
|
+
body: |
|
|
167
|
+
Automated coverage badge update from CI after tests passed on `main`.
|
|
168
|
+
|
|
169
|
+
- name: Enable auto-merge for coverage badge PR
|
|
170
|
+
if: steps.cpr.outputs.pull-request-number != '' && steps.cpr.outputs.pull-request-operation != 'none'
|
|
171
|
+
env:
|
|
172
|
+
GH_TOKEN: ${{ secrets.COVERAGE_BADGE_PR_TOKEN }}
|
|
173
|
+
run: |
|
|
174
|
+
gh pr merge "${{ steps.cpr.outputs.pull-request-number }}" --auto --squash --delete-branch
|
|
175
|
+
|
|
176
|
+
dependency-audit:
|
|
177
|
+
name: Dependency audit
|
|
178
|
+
needs: changes
|
|
179
|
+
runs-on: ubuntu-latest
|
|
180
|
+
steps:
|
|
181
|
+
- name: Skip coverage-badge-only change
|
|
182
|
+
if: needs.changes.outputs.coverage-badge-only == 'true'
|
|
183
|
+
run: echo "Skipping dependency audit for coverage badge-only change."
|
|
184
|
+
|
|
185
|
+
- name: Checkout
|
|
186
|
+
if: needs.changes.outputs.coverage-badge-only != 'true'
|
|
187
|
+
uses: actions/checkout@v5
|
|
188
|
+
|
|
189
|
+
- name: Setup Python
|
|
190
|
+
if: needs.changes.outputs.coverage-badge-only != 'true'
|
|
191
|
+
uses: actions/setup-python@v6
|
|
192
|
+
with:
|
|
193
|
+
python-version: "3.11"
|
|
194
|
+
|
|
195
|
+
- name: Setup uv
|
|
196
|
+
if: needs.changes.outputs.coverage-badge-only != 'true'
|
|
197
|
+
uses: astral-sh/setup-uv@v7
|
|
198
|
+
with:
|
|
199
|
+
enable-cache: true
|
|
200
|
+
cache-dependency-glob: uv.lock
|
|
201
|
+
|
|
202
|
+
- name: Audit locked dependencies
|
|
203
|
+
if: needs.changes.outputs.coverage-badge-only != 'true'
|
|
204
|
+
run: uv audit --locked
|
|
@@ -6,6 +6,41 @@ This project uses GitHub Releases for detailed generated release notes. This fil
|
|
|
6
6
|
|
|
7
7
|
## Unreleased
|
|
8
8
|
|
|
9
|
+
## 0.11.0 - 2026-06-26
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
|
|
13
|
+
- Added queued follow-up messages in the TUI so users can submit additional
|
|
14
|
+
prompts while an active turn is still running.
|
|
15
|
+
|
|
16
|
+
### Changed
|
|
17
|
+
|
|
18
|
+
- Moved task-list status into the sidebar and refined sidebar presentation.
|
|
19
|
+
- Updated documentation and positioning copy for gigacode and queued follow-up
|
|
20
|
+
messages.
|
|
21
|
+
|
|
22
|
+
## 0.10.0 - 2026-06-25
|
|
23
|
+
|
|
24
|
+
### Added
|
|
25
|
+
|
|
26
|
+
- Added a session changes inspector to the TUI that shows git diffs for the
|
|
27
|
+
current session, renders added files as diffs, presents an empty state, and
|
|
28
|
+
hides captured edit events.
|
|
29
|
+
- Added project prompt overrides, including variable rendering, override status
|
|
30
|
+
shown at startup, validation, and selective dump support.
|
|
31
|
+
|
|
32
|
+
### Fixed
|
|
33
|
+
|
|
34
|
+
- Preserved Ollama Cloud reasoning provider metadata.
|
|
35
|
+
- Ignored project `.dotenv` files when loading model config.
|
|
36
|
+
- Stabilized terminal rendering artifacts in the TUI.
|
|
37
|
+
- Restored the generated root CLI help.
|
|
38
|
+
- Surfaced prompt override render errors.
|
|
39
|
+
|
|
40
|
+
### Changed
|
|
41
|
+
|
|
42
|
+
- Split the LLM specs module into a package for maintainability.
|
|
43
|
+
|
|
9
44
|
## 0.9.0 - 2026-06-24
|
|
10
45
|
|
|
11
46
|
### Added
|
|
@@ -101,6 +101,31 @@ npm run build
|
|
|
101
101
|
|
|
102
102
|
Use `npm run dev` from `docs/` for local documentation development.
|
|
103
103
|
|
|
104
|
+
## Maintainer automation
|
|
105
|
+
|
|
106
|
+
The CI workflow updates `docs/src/assets/coverage.svg` by opening an automated pull
|
|
107
|
+
request. Configure the repository secret `COVERAGE_BADGE_PR_TOKEN` with a trusted
|
|
108
|
+
bot or maintainer token instead of `GITHUB_TOKEN`; GitHub requires manual approval
|
|
109
|
+
before workflows run on pull requests opened by `github-actions[bot]`.
|
|
110
|
+
|
|
111
|
+
Use a fine-grained personal access token or GitHub App token scoped to this
|
|
112
|
+
repository with:
|
|
113
|
+
|
|
114
|
+
- Contents: read and write
|
|
115
|
+
- Pull requests: read and write
|
|
116
|
+
- Metadata: read-only, included automatically
|
|
117
|
+
|
|
118
|
+
The token owner should be a trusted repository member or bot account. Do not use
|
|
119
|
+
a first-time external contributor account, and never commit the token value.
|
|
120
|
+
|
|
121
|
+
Optional repository variables can customize the Git commit identity used for the
|
|
122
|
+
badge update commit:
|
|
123
|
+
|
|
124
|
+
- `COVERAGE_BADGE_AUTHOR`
|
|
125
|
+
- `COVERAGE_BADGE_COMMITTER`
|
|
126
|
+
|
|
127
|
+
Use values like `Name <email@example.com>`.
|
|
128
|
+
|
|
104
129
|
## Pull Requests
|
|
105
130
|
|
|
106
131
|
- Keep changes focused and avoid unrelated refactors.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: kolega-code
|
|
3
|
-
Version: 0.
|
|
4
|
-
Summary:
|
|
3
|
+
Version: 0.11.0
|
|
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/
|
|
7
7
|
Project-URL: Repository, https://github.com/kolega-ai/kolega-code
|
|
@@ -82,7 +82,7 @@ Description-Content-Type: text/markdown
|
|
|
82
82
|
|
|
83
83
|
# Kolega Code
|
|
84
84
|
|
|
85
|
-
**
|
|
85
|
+
**Multi-agent coding in the terminal.**
|
|
86
86
|
|
|
87
87
|
[](https://pypi.org/project/kolega-code/)
|
|
88
88
|
[](https://pypi.org/project/kolega-code/)
|
|
@@ -92,41 +92,65 @@ Description-Content-Type: text/markdown
|
|
|
92
92
|
[](https://kolega-ai.github.io/kolega-code/)
|
|
93
93
|
[](CHANGELOG.md)
|
|
94
94
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
It's **local-first**: the agent operates on your actual filesystem and terminal, and your
|
|
100
|
-
sessions, settings, and API keys stay on your own machine.
|
|
95
|
+
Kolega Code is a local-first terminal coding agent built for work that is too wide
|
|
96
|
+
for one loop: fan out specialized sub-agents with **Gigacode**, route different
|
|
97
|
+
models to different jobs, search the web, drive a browser, and keep sessions,
|
|
98
|
+
settings, permissions, and credentials on your machine.
|
|
101
99
|
|
|
102
100
|

|
|
103
101
|
|
|
104
|
-
##
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
- **
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
- **
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
- **
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
102
|
+
## Built for work one agent cannot cover
|
|
103
|
+
|
|
104
|
+
Most terminal agents are strongest when one model can reason through one task at a
|
|
105
|
+
time. Kolega Code keeps that familiar workflow, then adds orchestration for broad work:
|
|
106
|
+
large audits, sweeping migrations, cross-file checks, adversarial reviews, and
|
|
107
|
+
implementation plans whose pieces can run independently.
|
|
108
|
+
|
|
109
|
+
With [Gigacode](https://kolega-ai.github.io/kolega-code/gigacode/), Kolega Code can:
|
|
110
|
+
|
|
111
|
+
- **Fan out many sub-agents at once.** Split a wide codebase review by package,
|
|
112
|
+
assign independent implementation tasks, or run checks across many directories in
|
|
113
|
+
parallel.
|
|
114
|
+
- **Use real workflow shapes.** The agent can generate parallel phases, pipelines,
|
|
115
|
+
loops, judge panels, and synthesis steps instead of only delegating one task at a
|
|
116
|
+
time.
|
|
117
|
+
- **Keep orchestration visible.** Workflow phase headers and progress lines appear
|
|
118
|
+
in the transcript; the sub-agent inspector shows each agent's live trajectory.
|
|
119
|
+
- **Save inspectable artifacts.** Each run keeps the generated workflow script,
|
|
120
|
+
result files, a Markdown transcript, raw JSONL, a resume journal, and debug
|
|
121
|
+
sub-agent transcripts under Kolega Code's state directory.
|
|
122
|
+
- **Run in either mode.** In Plan mode, workflow sub-agents stay read-only for
|
|
123
|
+
parallel investigation. In Build mode, they can use the full coding toolset.
|
|
124
|
+
- **Resume interrupted runs.** Finished workflow steps are journaled so a deliberate
|
|
125
|
+
resume does not have to restart the whole fan-out.
|
|
126
|
+
|
|
127
|
+
Use normal chat for focused changes. Turn on Gigacode when the problem is broad
|
|
128
|
+
enough that one serial agent pass would be the bottleneck.
|
|
129
|
+
|
|
130
|
+
## Features
|
|
131
|
+
|
|
132
|
+
- **Gigacode orchestration:** parallel, pipelined, looped, judged, and synthesized
|
|
133
|
+
multi-agent workflows with saved artifacts and resume support.
|
|
134
|
+
- **Specialized sub-agents:** planning, building/coder, investigation, general, and
|
|
135
|
+
browser agents, with live activity tracking in the TUI.
|
|
136
|
+
- **Repo tools:** read and search code, create files, apply precise edits, and inspect
|
|
137
|
+
session changes/diffs.
|
|
138
|
+
- **Terminal execution:** run shell commands with streamed output and project-level
|
|
139
|
+
permission controls.
|
|
140
|
+
- **Plan/build workflow:** use read-only Plan mode for investigation and a reviewable
|
|
141
|
+
task list, then Build mode to implement.
|
|
142
|
+
- **Web search and browsing:** DuckDuckGo works by default with no key; Firecrawl,
|
|
143
|
+
Tavily, and SearXNG are configurable search backends. Kolega Code can also fetch URLs
|
|
144
|
+
directly and use a Playwright-powered browser agent for interactive sites.
|
|
145
|
+
- **Model routing:** choose provider/model combinations, set thinking effort, split
|
|
146
|
+
long-context/fast/thinking roles, and override models per agent role.
|
|
147
|
+
- **Interactive or scriptable:** use the Textual TUI, queue follow-up prompts
|
|
148
|
+
while the agent is working, run `kolega-code ask`, request JSON output,
|
|
149
|
+
list/export/resume sessions, and diagnose setup with `doctor`.
|
|
150
|
+
- **Extensibility:** add agent skills, override prompts with project templates, run
|
|
151
|
+
lifecycle hooks, and persist project permission rules.
|
|
152
|
+
- **Local-first state:** sessions, settings, permissions, OAuth tokens, and API-key
|
|
153
|
+
settings stay on your machine with restrictive permissions where applicable.
|
|
130
154
|
|
|
131
155
|
## Quick start
|
|
132
156
|
|
|
@@ -155,8 +179,9 @@ kolega-code --version
|
|
|
155
179
|
kolega-code .
|
|
156
180
|
```
|
|
157
181
|
|
|
158
|
-
**3. Add a provider key.** Open the **Settings** tab to pick a provider
|
|
159
|
-
API key.
|
|
182
|
+
**3. Add a provider key.** Open the **Settings** tab to pick a provider/model and
|
|
183
|
+
save your API key. Use `Shift+Tab` to switch between **Plan** and **Build** mode,
|
|
184
|
+
or run `/gigacode on` when a task is broad enough for fan-out.
|
|
160
185
|
|
|
161
186
|
Resume a previous conversation:
|
|
162
187
|
|
|
@@ -169,7 +194,7 @@ kolega-code . --resume <id> # a specific thread or session
|
|
|
169
194
|
|
|
170
195
|
| Mode | Command | Best for |
|
|
171
196
|
| --- | --- | --- |
|
|
172
|
-
| **Interactive TUI** | `kolega-code .` | Day-to-day development, exploration,
|
|
197
|
+
| **Interactive TUI** | `kolega-code .` | Day-to-day development, exploration, orchestration |
|
|
173
198
|
| **One-shot** | `kolega-code ask "…"` | Scripting, automation, quick questions, CI |
|
|
174
199
|
|
|
175
200
|
There are also helper commands for managing sessions and checking your setup:
|
|
@@ -180,25 +205,60 @@ kolega-code sessions list --project .
|
|
|
180
205
|
kolega-code doctor --project .
|
|
181
206
|
```
|
|
182
207
|
|
|
183
|
-
##
|
|
208
|
+
## Supported providers
|
|
209
|
+
|
|
210
|
+
Kolega Code supports a broad model-provider catalog and lets you route models by
|
|
211
|
+
role instead of forcing one model to do every job.
|
|
212
|
+
|
|
213
|
+
Supported model providers:
|
|
214
|
+
|
|
215
|
+
- Anthropic
|
|
216
|
+
- OpenAI API
|
|
217
|
+
- OpenAI via ChatGPT subscription sign-in
|
|
218
|
+
- Google
|
|
219
|
+
- Groq
|
|
220
|
+
- Together.ai
|
|
221
|
+
- Fireworks.ai
|
|
222
|
+
- xAI / Grok
|
|
223
|
+
- DashScope / Qwen
|
|
224
|
+
- Moonshot / Kimi
|
|
225
|
+
- DeepSeek
|
|
226
|
+
- Z.AI / GLM Coding Plan
|
|
227
|
+
- Kimi Coding Plan
|
|
228
|
+
- Ollama Cloud
|
|
229
|
+
- local Llama
|
|
230
|
+
|
|
231
|
+
Supported web-search backends:
|
|
184
232
|
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
233
|
+
- DuckDuckGo — default, no key required
|
|
234
|
+
- Firecrawl
|
|
235
|
+
- Tavily
|
|
236
|
+
- SearXNG — self-hosted option
|
|
237
|
+
|
|
238
|
+
See [Providers & Models](https://kolega-ai.github.io/kolega-code/configuration/providers-and-models/)
|
|
239
|
+
for model IDs, role configuration, API-key variables, and thinking-effort options.
|
|
240
|
+
|
|
241
|
+
## Model routing
|
|
242
|
+
|
|
243
|
+
Kolega Code can assign different models to different operational roles: a strong
|
|
244
|
+
long-context model for the main coding loop, a faster model for utility calls, and
|
|
245
|
+
a dedicated model for extended thinking. You can also override models per agent
|
|
246
|
+
role — planning, building, investigation, general, and browser — so wide workflows
|
|
247
|
+
can use cheaper models where they fit and stronger models where they matter.
|
|
189
248
|
|
|
190
249
|
## Sign in with ChatGPT
|
|
191
250
|
|
|
192
|
-
If you have a paid **ChatGPT** plan (Plus, Pro, or Business), you can use it to run
|
|
193
|
-
instead of a separate API key. Run `/login chatgpt` in the TUI,
|
|
194
|
-
Kolega Code switches to the **OpenAI (ChatGPT
|
|
195
|
-
|
|
251
|
+
If you have a paid **ChatGPT** plan (Plus, Pro, or Business), you can use it to run
|
|
252
|
+
OpenAI models instead of a separate API key. Run `/login chatgpt` in the TUI,
|
|
253
|
+
complete the browser sign-in, and Kolega Code switches to the **OpenAI (ChatGPT
|
|
254
|
+
subscription)** provider (default `gpt-5.5`). Tokens are stored locally (chmod
|
|
255
|
+
`600`) and refreshed automatically; `/logout chatgpt` removes them. See
|
|
196
256
|
[Sign in with ChatGPT](https://kolega-ai.github.io/kolega-code/configuration/sign-in-with-chatgpt/).
|
|
197
257
|
|
|
198
258
|
## Configuration
|
|
199
259
|
|
|
200
|
-
Set your provider, model, and API keys from the **Settings** tab in the UI, or via
|
|
201
|
-
variables and flags for non-interactive use:
|
|
260
|
+
Set your provider, model, and API keys from the **Settings** tab in the UI, or via
|
|
261
|
+
environment variables and flags for non-interactive use:
|
|
202
262
|
|
|
203
263
|
```bash
|
|
204
264
|
export KOLEGA_CODE_PROVIDER=deepseek
|
|
@@ -206,20 +266,28 @@ export DEEPSEEK_API_KEY=...
|
|
|
206
266
|
kolega-code ask "summarize this repository" --project . --provider deepseek --model deepseek-v4-pro
|
|
207
267
|
```
|
|
208
268
|
|
|
209
|
-
API key variables only provide credentials — pick a provider/model explicitly or
|
|
210
|
-
Settings. Local session state lives under your platform's state
|
|
211
|
-
`KOLEGA_CODE_STATE_DIR` is set. See the
|
|
269
|
+
API key variables only provide credentials — pick a provider/model explicitly or
|
|
270
|
+
save one in Settings. Local session state lives under your platform's state
|
|
271
|
+
directory unless `KOLEGA_CODE_STATE_DIR` is set. See the
|
|
212
272
|
[Configuration docs](https://kolega-ai.github.io/kolega-code/configuration/settings-and-api-keys/)
|
|
213
273
|
for the full story.
|
|
214
274
|
|
|
215
|
-
The `web_search` tool uses DuckDuckGo by default without a key. To choose another
|
|
216
|
-
set it in **Settings** or export `KOLEGA_CODE_WEB_SEARCH_BACKEND` as
|
|
217
|
-
or `searxng`; use `FIRECRAWL_API_KEY`, `TAVILY_API_KEY`, or
|
|
275
|
+
The `web_search` tool uses DuckDuckGo by default without a key. To choose another
|
|
276
|
+
backend, set it in **Settings** or export `KOLEGA_CODE_WEB_SEARCH_BACKEND` as
|
|
277
|
+
`firecrawl`, `tavily`, or `searxng`; use `FIRECRAWL_API_KEY`, `TAVILY_API_KEY`, or
|
|
278
|
+
`SEARXNG_BASE_URL` as needed.
|
|
279
|
+
|
|
280
|
+
Projects can override Kolega Code's base prompts with uppercase Markdown templates
|
|
281
|
+
in `.kolega/prompts/`. Generate editable starters with Jinja replacement tags using
|
|
282
|
+
`/prompts dump` in the TUI or `kolega-code prompts dump --project .` in a terminal.
|
|
283
|
+
To dump only selected starters, pass prompt names such as `coder`, `planning`, or
|
|
284
|
+
`compaction` (filename aliases like `CODER.md` work too). Validate existing
|
|
285
|
+
overrides with `/prompts validate` or `kolega-code prompts validate --project .`.
|
|
218
286
|
|
|
219
287
|
## Requirements
|
|
220
288
|
|
|
221
289
|
- **Python 3.11+**
|
|
222
|
-
- An **API key
|
|
290
|
+
- An **API key**, ChatGPT sign-in, or local model for at least one supported model provider
|
|
223
291
|
- A terminal that supports a modern TUI (most do)
|
|
224
292
|
|
|
225
293
|
## Documentation
|
|
@@ -242,9 +310,9 @@ Full documentation lives at **[kolega-ai.github.io/kolega-code](https://kolega-a
|
|
|
242
310
|
|
|
243
311
|
## Contributing
|
|
244
312
|
|
|
245
|
-
Contributions are welcome. See [CONTRIBUTING.md](CONTRIBUTING.md) for local setup,
|
|
246
|
-
test suite, and building the docs site. Please report security issues
|
|
247
|
-
[SECURITY.md](SECURITY.md).
|
|
313
|
+
Contributions are welcome. See [CONTRIBUTING.md](CONTRIBUTING.md) for local setup,
|
|
314
|
+
running the test suite, and building the docs site. Please report security issues
|
|
315
|
+
privately per [SECURITY.md](SECURITY.md).
|
|
248
316
|
|
|
249
317
|
## License
|
|
250
318
|
|