kolega-code 0.8.4__tar.gz → 0.10.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.10.0/.env.example +31 -0
- kolega_code-0.10.0/.github/workflows/ci.yml +204 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/.gitignore +1 -1
- {kolega_code-0.8.4 → kolega_code-0.10.0}/CHANGELOG.md +32 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/CONTRIBUTING.md +25 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/PKG-INFO +8 -1
- {kolega_code-0.8.4 → kolega_code-0.10.0}/README.md +7 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/docs/src/assets/coverage.svg +1 -1
- {kolega_code-0.8.4 → kolega_code-0.10.0}/docs/src/content/docs/configuration/environment-variables.md +32 -37
- kolega_code-0.10.0/docs/src/content/docs/configuration/prompt-overrides.md +145 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/docs/src/content/docs/configuration/providers-and-models.mdx +12 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/__init__.py +1 -1
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/agent/__init__.py +1 -1
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/agent/baseagent.py +104 -1
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/agent/browseragent.py +2 -9
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/agent/coder.py +2 -9
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/agent/compression.py +3 -1
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/agent/conversation.py +13 -2
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/agent/generalagent.py +2 -8
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/agent/investigationagent.py +2 -9
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/agent/planningagent.py +2 -29
- kolega_code-0.10.0/kolega_code/agent/prompt_dump.py +407 -0
- kolega_code-0.10.0/kolega_code/agent/prompt_overrides.py +197 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/agent/prompt_provider.py +89 -8
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/cli/app.py +157 -7
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/cli/config.py +136 -19
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/cli/main.py +73 -6
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/cli/messages.py +9 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/cli/provider_registry.py +34 -1
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/cli/slash_commands.py +1 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/cli/tui/agent_runtime.py +21 -6
- kolega_code-0.10.0/kolega_code/cli/tui/changes_screen.py +346 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/cli/tui/command_handlers.py +90 -0
- kolega_code-0.10.0/kolega_code/cli/tui/session_diff.py +264 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/cli/tui/settings_panel.py +27 -10
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/cli/tui/state.py +17 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/cli/tui/status_dashboard.py +7 -2
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/cli/tui/styles.tcss +86 -1
- kolega_code-0.10.0/kolega_code/cli/tui/terminal_display.py +137 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/cli/tui/transcript.py +75 -4
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/cli/tui/widgets.py +2 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/config.py +3 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/llm/client.py +2 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/llm/exceptions.py +1 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/llm/models.py +7 -4
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/llm/providers/openai.py +3 -1
- kolega_code-0.10.0/kolega_code/llm/specs/__init__.py +27 -0
- kolega_code-0.10.0/kolega_code/llm/specs/accessors.py +56 -0
- kolega_code-0.10.0/kolega_code/llm/specs/catalog/__init__.py +41 -0
- kolega_code-0.10.0/kolega_code/llm/specs/catalog/anthropic.py +69 -0
- kolega_code-0.10.0/kolega_code/llm/specs/catalog/dashscope.py +15 -0
- kolega_code-0.10.0/kolega_code/llm/specs/catalog/deepseek.py +27 -0
- kolega_code-0.10.0/kolega_code/llm/specs/catalog/fireworks.py +84 -0
- kolega_code-0.10.0/kolega_code/llm/specs/catalog/google.py +27 -0
- kolega_code-0.10.0/kolega_code/llm/specs/catalog/kimi_coding.py +17 -0
- kolega_code-0.10.0/kolega_code/llm/specs/catalog/moonshot.py +38 -0
- kolega_code-0.10.0/kolega_code/llm/specs/catalog/ollama_cloud.py +325 -0
- kolega_code-0.10.0/kolega_code/llm/specs/catalog/openai.py +47 -0
- kolega_code-0.10.0/kolega_code/llm/specs/catalog/openai_chatgpt.py +55 -0
- kolega_code-0.10.0/kolega_code/llm/specs/catalog/together.py +15 -0
- kolega_code-0.10.0/kolega_code/llm/specs/catalog/xai.py +22 -0
- kolega_code-0.10.0/kolega_code/llm/specs/catalog/zai.py +29 -0
- kolega_code-0.10.0/kolega_code/llm/specs/thinking.py +100 -0
- kolega_code-0.10.0/kolega_code/llm/specs/types.py +11 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/services/terminal.py +51 -12
- {kolega_code-0.8.4 → kolega_code-0.10.0}/pyproject.toml +1 -1
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/llm/test_live_providers.py +22 -17
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/llm/test_openai_message_conversion.py +129 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/llm/test_provider_usage_mapping.py +9 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/services/test_terminal.py +43 -1
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/test_compression.py +57 -2
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/test_empty_message_handling.py +12 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/test_history_adapter_thinking.py +60 -0
- kolega_code-0.10.0/tests/agent/test_prompt_dump.py +163 -0
- kolega_code-0.10.0/tests/agent/test_prompt_overrides.py +280 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/cli/test_app_bootstrap_settings.py +186 -6
- kolega_code-0.10.0/tests/cli/test_app_changes_inspector.py +256 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/cli/test_app_misc_commands.py +102 -1
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/cli/test_app_rendering_streaming.py +44 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/cli/test_app_rendering_terminal_logs.py +92 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/cli/test_cli_config.py +135 -1
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/cli/test_main.py +113 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/cli/test_provider_registry.py +9 -0
- kolega_code-0.10.0/tests/cli/test_session_diff.py +131 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/cli/test_settings.py +19 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/cli/test_slash_commands.py +2 -0
- kolega_code-0.10.0/tests/cli/test_terminal_display.py +42 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/cli/test_tui_stylesheet.py +38 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/uv.lock +2 -2
- kolega_code-0.8.4/.env.example +0 -22
- kolega_code-0.8.4/.github/workflows/ci.yml +0 -131
- kolega_code-0.8.4/kolega_code/llm/specs.py +0 -571
- {kolega_code-0.8.4 → kolega_code-0.10.0}/.githooks/pre-commit +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/.github/workflows/docs.yml +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/.github/workflows/release.yml +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/.pre-commit-config.yaml +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/LICENSE +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/RELEASING.md +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/SECURITY.md +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/docs/.gitignore +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/docs/README.md +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/docs/astro.config.mjs +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/docs/package-lock.json +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/docs/package.json +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/docs/public/favicon.svg +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/docs/src/assets/demo.gif +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/docs/src/assets/kolega-dark.svg +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/docs/src/assets/kolega-light.svg +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/docs/src/content/docs/cli/ask.md +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/docs/src/content/docs/cli/doctor.md +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/docs/src/content/docs/cli/overview.md +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/docs/src/content/docs/cli/sessions.md +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/docs/src/content/docs/concepts/agents.md +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/docs/src/content/docs/concepts/how-it-works.md +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/docs/src/content/docs/concepts/tools.md +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/docs/src/content/docs/configuration/settings-and-api-keys.mdx +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/docs/src/content/docs/configuration/sign-in-with-chatgpt.mdx +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/docs/src/content/docs/getting-started/installation.mdx +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/docs/src/content/docs/getting-started/quick-start.mdx +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/docs/src/content/docs/gigacode.mdx +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/docs/src/content/docs/hooks.md +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/docs/src/content/docs/index.mdx +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/docs/src/content/docs/skills.mdx +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/docs/src/content/docs/tui/composer.md +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/docs/src/content/docs/tui/interface.md +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/docs/src/content/docs/tui/modes.md +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/docs/src/content/docs/tui/sessions-and-resume.md +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/docs/src/content/docs/tui/slash-commands.md +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/docs/src/content.config.ts +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/docs/src/styles/brand.css +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/docs/tsconfig.json +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/agent/common.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/agent/context.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/agent/errors.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/agent/orchestration/__init__.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/agent/orchestration/budget.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/agent/orchestration/errors.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/agent/orchestration/executor.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/agent/orchestration/guide.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/agent/orchestration/journal.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/agent/orchestration/runtime.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/agent/orchestration/types.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/agent/prompt_templates/auxiliary/compression/summary.system.md +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/agent/prompt_templates/auxiliary/compression/summary.user.md.j2 +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/agent/prompt_templates/auxiliary/terminal/output_summary.system.md +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/agent/prompt_templates/auxiliary/terminal/safety.system.md +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/agent/prompt_templates/auxiliary/tools/think_hard.system.md +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/agent/prompt_templates/extensions/cli/planning_questions.md +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/agent/prompt_templates/extensions/cli/shared_task_list.md +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/agent/prompt_templates/extensions/skills/catalog.md.j2 +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/agent/prompt_templates/system/agents/browser.md.j2 +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/agent/prompt_templates/system/agents/coder_cli.md.j2 +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/agent/prompt_templates/system/agents/general.md.j2 +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/agent/prompt_templates/system/agents/investigation.md.j2 +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/agent/prompt_templates/system/agents/planning.md.j2 +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/agent/prompt_templates/system/includes/agents_md_instructions.md +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/agent/prompt_templates/system/includes/environment_variables/workspace_env_vars.md +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/agent/prompt_templates/system/includes/frontend_guidance.md +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/agent/prompt_templates/system/includes/starter_templates/expo.md +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/agent/prompt_templates/system/includes/starter_templates/html_website.md +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/agent/prompt_templates/system/includes/starter_templates/mern_stack.md +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/agent/prompt_templates/system/includes/starter_templates/react_vite_shadcdn.md +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/agent/prompt_templates/user_tasks/cli/implement_plan.md.j2 +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/agent/prompt_templates/user_tasks/cli/init_agents.md.j2 +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/agent/prompts.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/agent/tool_backend/agent_tool.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/agent/tool_backend/base_tool.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/agent/tool_backend/browser_tool.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/agent/tool_backend/build_tool.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/agent/tool_backend/create_file_tool.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/agent/tool_backend/edit_preview.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/agent/tool_backend/glob_tool.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/agent/tool_backend/list_directory_tool.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/agent/tool_backend/memory_tool.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/agent/tool_backend/read_file_tool.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/agent/tool_backend/read_image_tool.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/agent/tool_backend/replace_entire_file_tool.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/agent/tool_backend/replace_lines_tool.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/agent/tool_backend/search_and_replace_tool.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/agent/tool_backend/search_backends/__init__.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/agent/tool_backend/search_backends/base.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/agent/tool_backend/search_backends/duckduckgo.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/agent/tool_backend/search_backends/errors.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/agent/tool_backend/search_backends/firecrawl.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/agent/tool_backend/search_backends/models.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/agent/tool_backend/search_backends/searxng.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/agent/tool_backend/search_backends/tavily.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/agent/tool_backend/search_codebase_tool.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/agent/tool_backend/streaming_tool.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/agent/tool_backend/terminal_tool.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/agent/tool_backend/think_hard_tool.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/agent/tool_backend/web_fetch_tool.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/agent/tool_backend/web_search_tool.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/agent/tool_backend/workflow_tool.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/agent/tools.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/agent/utils/commands.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/auth/__init__.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/auth/_jwt.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/auth/chatgpt_oauth.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/auth/constants.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/auth/tokens.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/cli/__init__.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/cli/clipboard_image.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/cli/connection.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/cli/file_index.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/cli/mentions.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/cli/session_store.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/cli/settings.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/cli/skills.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/cli/theme.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/cli/tui/__init__.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/cli/tui/constants.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/cli/tui/prompt_flows.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/cli/tui/sub_agent_screen.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/cli/updater.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/events.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/hooks/__init__.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/hooks/backends.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/hooks/config.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/hooks/dispatcher.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/hooks/events.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/hooks/matcher.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/hooks/outcome.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/llm/instrumented_client.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/llm/providers/__init__.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/llm/providers/anthropic.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/llm/providers/base.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/llm/providers/chatgpt_oauth.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/llm/providers/google.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/llm/providers/models.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/llm/providers/openai_responses.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/llm/providers/responses_common.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/llm/ratelimit.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/llm/tool_execution_ids.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/local_state.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/models/__init__.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/models/sandbox_terminal_state.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/permissions.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/runtime.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/sandbox/README.md +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/sandbox/__init__.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/sandbox/async_filesystem.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/sandbox/base.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/sandbox/browser.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/sandbox/event_loop.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/sandbox/filesystem.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/sandbox/local.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/sandbox/serializer.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/sandbox/terminal.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/sandbox/utils.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/services/base.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/services/browser.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/services/file_system.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/services/html.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/services/terminal_buffer.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/tools/__init__.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/tools/core.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/tools/definitions.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/tools/registry.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/utils/__init__.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/kolega_code/utils/images.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/run_tests.sh +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/scripts/check-dev-hooks.sh +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/scripts/install-kolega-code.sh +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/scripts/setup-dev.sh +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/__init__.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/__init__.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/compaction_helpers.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/conftest.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/llm/__init__.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/llm/_token_counting_utils.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/llm/test_anthropic_token_counting.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/llm/test_billing_openai_cache.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/llm/test_chatgpt_live.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/llm/test_chatgpt_oauth_auth_config.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/llm/test_chatgpt_oauth_conversion.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/llm/test_chatgpt_oauth_provider.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/llm/test_chatgpt_oauth_provider_generate.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/llm/test_chatgpt_oauth_streaming.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/llm/test_client.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/llm/test_client_live.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/llm/test_client_runtime.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/llm/test_dashscope_mapping.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/llm/test_error_boundary.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/llm/test_exceptions.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/llm/test_google_thought_signature.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/llm/test_google_tool_signature_live.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/llm/test_instrumented_client.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/llm/test_instrumented_client_integration.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/llm/test_instrumented_client_stream.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/llm/test_langfuse_normalization.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/llm/test_message_conversion.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/llm/test_model_specs.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/llm/test_openai_cached_tokens.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/llm/test_openai_cached_tokens_stream.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/llm/test_openai_responses_provider.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/llm/test_openai_token_counting.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/llm/test_supports_vision.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/llm/test_thinking_effort.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/llm/test_tool_execution_ids.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/orchestration/__init__.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/orchestration/test_orchestration.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/services/__init__.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/services/test_browser.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/services/test_browser_console_logs.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/services/test_browser_content.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/services/test_browser_integration.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/services/test_browser_parity.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/services/test_file_system.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/services/test_file_system_integration.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/services/test_file_system_path.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/services/test_local_file_system.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/services/test_sandbox_terminal_input.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/services/test_terminal_buffer.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/services/test_terminal_state_serializer.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/test_agent_tools_inventory.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/test_base_agent.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/test_base_agent_anthropic_history_validation.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/test_base_agent_compaction.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/test_base_agent_effective_history.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/test_base_agent_history_serialization.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/test_base_agent_prompt_context.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/test_base_agent_role_overrides.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/test_base_agent_runtime.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/test_base_agent_tool_call_repair.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/test_base_agent_tool_call_repair_integration.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/test_base_agent_tool_execution.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/test_coder_attachments.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/test_coder_prompt_extensions.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/test_commands.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/test_compaction_integration.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/test_compaction_persistence.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/test_compaction_subagent.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/test_compaction_tui_events.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/test_compress_command.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/test_conversation_compaction.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/test_duplicate_tool_results.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/test_event_emitter.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/test_general_agent.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/test_gigacode_gating.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/test_history_image_blocks.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/test_hooks_integration.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/test_html.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/test_image_compat.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/test_parallel_tool_calls.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/test_permissions.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/test_planning_agent.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/test_prompt_provider.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/test_prompts.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/test_read_image_tool.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/test_tool_collection_builtin_dispatch.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/test_tool_collection_config.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/test_tool_collection_extensions.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/test_tool_collection_initialization.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/test_tool_collection_memory.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/test_tool_registry.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/test_tools.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/tool_backend/__init__.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/tool_backend/test_agent_tool.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/tool_backend/test_base_tool.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/tool_backend/test_browser_tool.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/tool_backend/test_build_tool.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/tool_backend/test_create_file_tool.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/tool_backend/test_edit_preview.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/tool_backend/test_glob_tool.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/tool_backend/test_glob_tool_sandbox_parity.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/tool_backend/test_list_directory_tool.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/tool_backend/test_read_file_tool.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/tool_backend/test_replace_entire_file_tool.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/tool_backend/test_replace_lines_tool.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/tool_backend/test_search_and_replace_tool.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/tool_backend/test_search_codebase_tool.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/tool_backend/test_terminal_tool.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/tool_backend/test_think_hard_integration.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/tool_backend/test_think_hard_streaming.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/tool_backend/test_think_hard_streaming_content.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/tool_backend/test_think_hard_streaming_errors.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/tool_backend/test_think_hard_streaming_updates.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/tool_backend/test_web_fetch_tool.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/tool_backend/test_web_search_tool.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/agent/tool_backend/test_workflow_tool.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/auth/__init__.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/auth/test_chatgpt_oauth.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/auth/test_tokens.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/cli/__init__.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/cli/_app_test_utils.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/cli/test_app.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/cli/test_app_agent_wiring.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/cli/test_app_compaction_restore.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/cli/test_app_composer_commands.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/cli/test_app_composer_input.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/cli/test_app_conversation_rendering.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/cli/test_app_focus_behavior.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/cli/test_app_image_vision_warning.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/cli/test_app_mention_dropdown.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/cli/test_app_model_effort_commands.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/cli/test_app_model_switch_vision.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/cli/test_app_modes_planning.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/cli/test_app_navigation_commands.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/cli/test_app_permission_prompts.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/cli/test_app_persistence_history.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/cli/test_app_plan_lifecycle.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/cli/test_app_planning_questions.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/cli/test_app_planning_restore.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/cli/test_app_rendering_entries.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/cli/test_app_rendering_errors.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/cli/test_app_rendering_scroll.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/cli/test_app_rendering_selection.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/cli/test_app_rendering_status.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/cli/test_app_rendering_tools.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/cli/test_app_skill_commands.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/cli/test_app_slash_dropdown.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/cli/test_app_status_modes.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/cli/test_app_sub_agents_workflows.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/cli/test_clipboard_image.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/cli/test_connection.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/cli/test_file_index.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/cli/test_mentions.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/cli/test_session_store.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/cli/test_skills.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/cli/test_themes.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/cli/test_updater.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/conftest.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/hooks/__init__.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/hooks/test_hooks.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/tools/__init__.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/tools/test_definitions.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/utils/__init__.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/utils/test_images.py +0 -0
- {kolega_code-0.8.4 → kolega_code-0.10.0}/tests/utils/test_images_ascii.py +0 -0
|
@@ -0,0 +1,31 @@
|
|
|
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.
|
|
11
|
+
|
|
12
|
+
ANTHROPIC_API_KEY=
|
|
13
|
+
OPENAI_API_KEY=
|
|
14
|
+
# Prefer a ChatGPT subscription over an OpenAI API key? Run `/login` in the TUI
|
|
15
|
+
# (no key needed). Optional override of the OAuth client id, for testing only:
|
|
16
|
+
# KOLEGA_CODE_CHATGPT_CLIENT_ID=
|
|
17
|
+
GOOGLE_API_KEY=
|
|
18
|
+
FIREWORKS_API_KEY=
|
|
19
|
+
MOONSHOT_API_KEY=
|
|
20
|
+
DEEPSEEK_API_KEY=
|
|
21
|
+
ZAI_API_KEY=
|
|
22
|
+
KIMI_CODING_API_KEY=
|
|
23
|
+
OLLAMA_API_KEY=
|
|
24
|
+
|
|
25
|
+
KOLEGA_CODE_THINKING_EFFORT=
|
|
26
|
+
|
|
27
|
+
BROWSERLESS_API_KEY=
|
|
28
|
+
|
|
29
|
+
LANGFUSE_HOST=https://us.cloud.langfuse.com
|
|
30
|
+
LANGFUSE_PUBLIC_KEY=
|
|
31
|
+
LANGFUSE_SECRET_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,38 @@ This project uses GitHub Releases for detailed generated release notes. This fil
|
|
|
6
6
|
|
|
7
7
|
## Unreleased
|
|
8
8
|
|
|
9
|
+
## 0.10.0 - 2026-06-25
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
|
|
13
|
+
- Added a session changes inspector to the TUI that shows git diffs for the
|
|
14
|
+
current session, renders added files as diffs, presents an empty state, and
|
|
15
|
+
hides captured edit events.
|
|
16
|
+
- Added project prompt overrides, including variable rendering, override status
|
|
17
|
+
shown at startup, validation, and selective dump support.
|
|
18
|
+
|
|
19
|
+
### Fixed
|
|
20
|
+
|
|
21
|
+
- Preserved Ollama Cloud reasoning provider metadata.
|
|
22
|
+
- Ignored project `.dotenv` files when loading model config.
|
|
23
|
+
- Stabilized terminal rendering artifacts in the TUI.
|
|
24
|
+
- Restored the generated root CLI help.
|
|
25
|
+
- Surfaced prompt override render errors.
|
|
26
|
+
|
|
27
|
+
### Changed
|
|
28
|
+
|
|
29
|
+
- Split the LLM specs module into a package for maintainability.
|
|
30
|
+
|
|
31
|
+
## 0.9.0 - 2026-06-24
|
|
32
|
+
|
|
33
|
+
### Added
|
|
34
|
+
|
|
35
|
+
- Added Ollama Cloud as a supported provider, including its model catalog and reasoning-field capture.
|
|
36
|
+
|
|
37
|
+
### Fixed
|
|
38
|
+
|
|
39
|
+
- Clarified the disconnected state shown on first run when no provider is configured.
|
|
40
|
+
|
|
9
41
|
## 0.8.4 - 2026-06-24
|
|
10
42
|
|
|
11
43
|
### 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,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: kolega-code
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.10.0
|
|
4
4
|
Summary: Local-first AI coding agent for 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/
|
|
@@ -216,6 +216,13 @@ The `web_search` tool uses DuckDuckGo by default without a key. To choose anothe
|
|
|
216
216
|
set it in **Settings** or export `KOLEGA_CODE_WEB_SEARCH_BACKEND` as `firecrawl`, `tavily`,
|
|
217
217
|
or `searxng`; use `FIRECRAWL_API_KEY`, `TAVILY_API_KEY`, or `SEARXNG_BASE_URL` as needed.
|
|
218
218
|
|
|
219
|
+
Projects can also override Kolega Code's base prompts with uppercase Markdown templates in
|
|
220
|
+
`.kolega/prompts/`. Generate editable starters with Jinja replacement tags using `/prompts dump`
|
|
221
|
+
in the TUI or `kolega-code prompts dump --project .` in a terminal. To dump only selected
|
|
222
|
+
starters, pass prompt names such as `coder`, `planning`, or `compaction` (filename aliases
|
|
223
|
+
like `CODER.md` work too). Validate existing overrides with `/prompts validate` or
|
|
224
|
+
`kolega-code prompts validate --project .`.
|
|
225
|
+
|
|
219
226
|
## Requirements
|
|
220
227
|
|
|
221
228
|
- **Python 3.11+**
|
|
@@ -134,6 +134,13 @@ The `web_search` tool uses DuckDuckGo by default without a key. To choose anothe
|
|
|
134
134
|
set it in **Settings** or export `KOLEGA_CODE_WEB_SEARCH_BACKEND` as `firecrawl`, `tavily`,
|
|
135
135
|
or `searxng`; use `FIRECRAWL_API_KEY`, `TAVILY_API_KEY`, or `SEARXNG_BASE_URL` as needed.
|
|
136
136
|
|
|
137
|
+
Projects can also override Kolega Code's base prompts with uppercase Markdown templates in
|
|
138
|
+
`.kolega/prompts/`. Generate editable starters with Jinja replacement tags using `/prompts dump`
|
|
139
|
+
in the TUI or `kolega-code prompts dump --project .` in a terminal. To dump only selected
|
|
140
|
+
starters, pass prompt names such as `coder`, `planning`, or `compaction` (filename aliases
|
|
141
|
+
like `CODER.md` work too). Validate existing overrides with `/prompts validate` or
|
|
142
|
+
`kolega-code prompts validate --project .`.
|
|
143
|
+
|
|
137
144
|
## Requirements
|
|
138
145
|
|
|
139
146
|
- **Python 3.11+**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="114" height="20" role="img" aria-label="coverage: 80.
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="114" height="20" role="img" aria-label="coverage: 80.49%"><title>coverage: 80.49%</title><filter id="blur"><feGaussianBlur stdDeviation="16"/></filter><linearGradient id="s" x2="0" y2="100%"><stop offset="0" stop-color="#bbb" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient><clipPath id="r"><rect width="114" height="20" rx="3"/></clipPath><g clip-path="url(#r)"><rect width="61" height="20" fill="#555"/><rect x="61" width="53" height="20" fill="#67ac09"/><rect width="114" height="20" fill="url(#s)"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><g transform="scale(.1)"><g aria-hidden="true" fill="#010101"><text x="315" y="150" fill-opacity=".8" filter="url(#blur)" textLength="510">coverage</text><text x="315" y="150" fill-opacity=".3" textLength="510">coverage</text></g><text x="315" y="140" textLength="510">coverage</text></g><g transform="scale(.1)"><g aria-hidden="true" fill="#010101"><text x="865" y="150" fill-opacity=".8" filter="url(#blur)" textLength="430">80.49%</text><text x="865" y="150" fill-opacity=".3" textLength="430">80.49%</text></g><text x="865" y="140" textLength="430">80.49%</text></g></g></svg>
|
|
@@ -3,25 +3,29 @@ title: Environment Variables
|
|
|
3
3
|
description: Every environment variable Kolega Code reads, and how precedence works.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
Kolega Code reads configuration from
|
|
7
|
-
|
|
6
|
+
Kolega Code reads configuration from CLI flags, exported environment variables,
|
|
7
|
+
and saved Settings. It does **not** automatically load the target project's
|
|
8
|
+
`.env` file for its own provider/model/API-key configuration. This page lists the
|
|
9
|
+
environment variables it understands when they are explicitly present in the
|
|
10
|
+
Kolega Code process environment.
|
|
8
11
|
|
|
9
12
|
## Precedence
|
|
10
13
|
|
|
11
14
|
For any given setting, the first available source wins:
|
|
12
15
|
|
|
13
16
|
1. **CLI flags** (e.g. `--provider`, `--model`)
|
|
14
|
-
2. **
|
|
15
|
-
3. **
|
|
16
|
-
4. **Saved Settings** (`settings.json`)
|
|
17
|
+
2. **Exported process environment variables**
|
|
18
|
+
3. **Saved Settings** (`settings.json`)
|
|
17
19
|
|
|
18
|
-
Kolega Code requires an explicit provider/model selection from flags,
|
|
19
|
-
environment variables,
|
|
20
|
-
|
|
20
|
+
Kolega Code requires an explicit provider/model selection from flags, exported
|
|
21
|
+
environment variables, or saved settings. API key variables alone are not a model
|
|
22
|
+
selection source.
|
|
21
23
|
|
|
22
24
|
:::note
|
|
23
|
-
|
|
24
|
-
|
|
25
|
+
A project `.env` file is treated as part of the project being edited. Kolega Code
|
|
26
|
+
will not read it for its own LLM configuration. For persistent credentials, use
|
|
27
|
+
Settings. For automation, export environment variables in the shell or CI process
|
|
28
|
+
that launches Kolega Code.
|
|
25
29
|
:::
|
|
26
30
|
|
|
27
31
|
## API keys
|
|
@@ -46,12 +50,14 @@ provider or model.
|
|
|
46
50
|
| `DEEPSEEK_API_KEY` | DeepSeek |
|
|
47
51
|
| `ZAI_API_KEY` | Z.AI (GLM Coding Plan) |
|
|
48
52
|
| `KIMI_CODING_API_KEY` | Kimi Coding Plan |
|
|
53
|
+
| `OLLAMA_API_KEY` | Ollama Cloud |
|
|
49
54
|
|
|
50
55
|
The local `llama` provider needs no key. The `zai` key authenticates against Z.AI's
|
|
51
56
|
Anthropic-compatible endpoint (it is the key Z.AI also documents as `ANTHROPIC_AUTH_TOKEN`).
|
|
52
57
|
The `kimi_coding` key authenticates against the Kimi Coding Plan's separate
|
|
53
58
|
Anthropic-compatible endpoint (`https://api.kimi.com/coding/`), which is distinct from the
|
|
54
59
|
standard Moonshot API used by the `moonshot` provider.
|
|
60
|
+
The `OLLAMA_API_KEY` key authenticates against Ollama Cloud's direct API (`https://ollama.com/v1` for OpenAI-compatible requests).
|
|
55
61
|
|
|
56
62
|
## Model selection
|
|
57
63
|
|
|
@@ -109,37 +115,26 @@ Optional [Langfuse](https://langfuse.com/) tracing of LLM usage.
|
|
|
109
115
|
| `LANGFUSE_PUBLIC_KEY` | Langfuse public key |
|
|
110
116
|
| `LANGFUSE_SECRET_KEY` | Langfuse secret key |
|
|
111
117
|
|
|
112
|
-
##
|
|
118
|
+
## About project `.env` files
|
|
113
119
|
|
|
114
|
-
Kolega Code automatically
|
|
115
|
-
|
|
120
|
+
Kolega Code does not automatically load a `.env` file from the project directory.
|
|
121
|
+
That file commonly belongs to the app being edited, so consuming it as Kolega
|
|
122
|
+
Code configuration can accidentally pick up unrelated application secrets such as
|
|
123
|
+
`OPENAI_API_KEY`.
|
|
116
124
|
|
|
117
|
-
|
|
118
|
-
# Pick one provider's key (or several)
|
|
119
|
-
MOONSHOT_API_KEY=
|
|
120
|
-
DEEPSEEK_API_KEY=
|
|
121
|
-
FIREWORKS_API_KEY=
|
|
122
|
-
ANTHROPIC_API_KEY=
|
|
125
|
+
Use one of these instead:
|
|
123
126
|
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
# Fireworks example:
|
|
130
|
-
# KOLEGA_CODE_PROVIDER=fireworks
|
|
131
|
-
# KOLEGA_CODE_MODEL=accounts/fireworks/models/glm-5p2
|
|
132
|
-
|
|
133
|
-
# Optional: web search
|
|
134
|
-
KOLEGA_CODE_WEB_SEARCH_BACKEND=duckduckgo
|
|
135
|
-
|
|
136
|
-
# Optional: Langfuse tracing
|
|
137
|
-
LANGFUSE_HOST=https://us.cloud.langfuse.com
|
|
138
|
-
LANGFUSE_PUBLIC_KEY=
|
|
139
|
-
LANGFUSE_SECRET_KEY=
|
|
127
|
+
```bash title="one-off shell configuration"
|
|
128
|
+
export MOONSHOT_API_KEY=...
|
|
129
|
+
export KOLEGA_CODE_PROVIDER=moonshot
|
|
130
|
+
export KOLEGA_CODE_MODEL=kimi-k2.7-code
|
|
131
|
+
kolega-code
|
|
140
132
|
```
|
|
141
133
|
|
|
134
|
+
Or save the provider, model, and API key in the TUI Settings tab. Settings are
|
|
135
|
+
the recommended persistent configuration path for interactive use.
|
|
136
|
+
|
|
142
137
|
:::caution
|
|
143
|
-
Keep `.env` out of version control —
|
|
144
|
-
`.gitignore`.
|
|
138
|
+
Keep project `.env` files out of version control — they often hold application
|
|
139
|
+
secrets. Add them to your `.gitignore`.
|
|
145
140
|
:::
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Prompt overrides
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
Kolega Code can load repository-local Markdown templates that replace its base system prompts. This is useful when a project needs a different operating style, stricter rules, or specialized instructions for sub-agents.
|
|
6
|
+
|
|
7
|
+
## File layout
|
|
8
|
+
|
|
9
|
+
Create uppercase Markdown files under `.kolega/prompts/`:
|
|
10
|
+
|
|
11
|
+
```text
|
|
12
|
+
.kolega/prompts/
|
|
13
|
+
CODER.md # CoderAgent, all coder modes
|
|
14
|
+
PLANNING.md # PlanningAgent
|
|
15
|
+
GENERAL.md # GeneralAgent sub-agent
|
|
16
|
+
INVESTIGATION.md # InvestigationAgent sub-agent
|
|
17
|
+
BROWSER.md # BrowserAgent sub-agent
|
|
18
|
+
COMPACTION.md # conversation compaction summarizer
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Only these uppercase filenames are recognized. Lowercase aliases such as `coder.md` are ignored. Every file is optional: you can override only `CODER.md`, only `COMPACTION.md`, or any subset. Missing files fall back to Kolega Code's bundled or host-provided defaults.
|
|
22
|
+
|
|
23
|
+
`CODER.md` is the only coder override. It applies to the coder agent in every coder mode, even though Kolega Code internally has separate hosted prompt template slots for `cli`, `code`, `vibe`, and `fix`.
|
|
24
|
+
|
|
25
|
+
## Generate starter files
|
|
26
|
+
|
|
27
|
+
In the TUI, run:
|
|
28
|
+
|
|
29
|
+
```text
|
|
30
|
+
/prompts dump
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
From a terminal, run:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
kolega-code prompts dump --project .
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Both commands create any missing files in `.kolega/prompts/` from Kolega Code's current bundled/base prompts. Existing files are skipped by default so local edits are not overwritten.
|
|
40
|
+
|
|
41
|
+
To dump only specific starter files, pass one or more prompt selectors:
|
|
42
|
+
|
|
43
|
+
```text
|
|
44
|
+
/prompts dump coder compaction
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
kolega-code prompts dump coder compaction --project .
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
Supported selectors are `coder`, `planning`, `general`, `investigation`, `browser`, `compaction`, and `all`. Filename aliases are also accepted case-insensitively, so `CODER.md`, `coder.md`, and `CODER` all select the coder prompt.
|
|
52
|
+
|
|
53
|
+
To overwrite existing files:
|
|
54
|
+
|
|
55
|
+
```text
|
|
56
|
+
/prompts dump --force
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
kolega-code prompts dump --project . --force
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
`--force` also works with selective dumps:
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
kolega-code prompts dump compaction --project . --force
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
To see which overrides exist:
|
|
70
|
+
|
|
71
|
+
```text
|
|
72
|
+
/prompts list
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
kolega-code prompts list --project .
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
To validate existing overrides before restarting or sharing a repository:
|
|
80
|
+
|
|
81
|
+
```text
|
|
82
|
+
/prompts validate
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
kolega-code prompts validate --project .
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
Validation uses the same strict Jinja rendering check that runs during startup. Missing optional files are not errors. The terminal command exits `0` when all existing supported overrides are valid (or no overrides exist), and exits `1` when any override cannot render.
|
|
90
|
+
|
|
91
|
+
Dumped files are editable Markdown templates. Environment values are written as Jinja tags, not frozen current values. For example:
|
|
92
|
+
|
|
93
|
+
```md
|
|
94
|
+
- Working directory: {{ context.project_path }}
|
|
95
|
+
- Is directory a git repo: {{ context.is_git_repo }}
|
|
96
|
+
- Platform: {{ context.platform }}
|
|
97
|
+
- Today's date: {{ context.date_today }}
|
|
98
|
+
- Model: {{ context.model_name }}
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
## Template variables
|
|
102
|
+
|
|
103
|
+
Override files are rendered with a limited Jinja variable context. These variables are available:
|
|
104
|
+
|
|
105
|
+
- `context.system_name`
|
|
106
|
+
- `context.project_path`
|
|
107
|
+
- `context.is_git_repo`
|
|
108
|
+
- `context.platform`
|
|
109
|
+
- `context.date_today`
|
|
110
|
+
- `context.model_name`
|
|
111
|
+
- `context.available_ports`
|
|
112
|
+
- `context.workspace_id`
|
|
113
|
+
- `context.workspace_environment_variables`
|
|
114
|
+
- `mode`
|
|
115
|
+
- `project_template_slug`
|
|
116
|
+
|
|
117
|
+
Common fields are also available as top-level aliases:
|
|
118
|
+
|
|
119
|
+
- `system_name`
|
|
120
|
+
- `project_path`
|
|
121
|
+
- `is_git_repo`
|
|
122
|
+
- `platform`
|
|
123
|
+
- `date_today`
|
|
124
|
+
- `model_name`
|
|
125
|
+
- `available_ports`
|
|
126
|
+
- `workspace_id`
|
|
127
|
+
|
|
128
|
+
Project override templates can use variables, conditionals, and loops over the exposed values. Project-local `{% include %}` and `{% import %}` are not supported.
|
|
129
|
+
|
|
130
|
+
## How overrides are applied
|
|
131
|
+
|
|
132
|
+
Agent prompt overrides replace the bundled base system prompt for that agent type. Kolega Code still appends dynamic runtime/project sections after your override, including:
|
|
133
|
+
|
|
134
|
+
- matching prompt extensions, such as skills or gigacode guidance
|
|
135
|
+
- workspace memories
|
|
136
|
+
- `AGENTS.md` or legacy `KOLEGA.md` project guidance
|
|
137
|
+
- `AGENT_MEMORY.md`
|
|
138
|
+
|
|
139
|
+
`COMPACTION.md` is different: it fully replaces only the system prompt used by the conversation compaction summarizer. The user prompt containing the conversation history is still generated by Kolega Code.
|
|
140
|
+
|
|
141
|
+
Each override file is capped at 128 KiB. If a file is unreadable, too large, or cannot be rendered, Kolega Code logs a warning and falls back to the normal bundled/host prompt.
|
|
142
|
+
|
|
143
|
+
## Security note
|
|
144
|
+
|
|
145
|
+
Prompt overrides let a repository influence agent behavior. Review `.kolega/prompts/` in untrusted projects just as you would review `AGENTS.md`, scripts, hooks, or other project-local automation.
|
|
@@ -27,6 +27,7 @@ The agent runtime recognizes these providers:
|
|
|
27
27
|
| DeepSeek | `deepseek` | `DEEPSEEK_API_KEY` |
|
|
28
28
|
| Z.AI (GLM Coding Plan) | `zai` | `ZAI_API_KEY` |
|
|
29
29
|
| Kimi Coding Plan | `kimi_coding` | `KIMI_CODING_API_KEY` |
|
|
30
|
+
| Ollama Cloud | `ollama_cloud` | `OLLAMA_API_KEY` |
|
|
30
31
|
| Llama (local) | `llama` | _none — local model_ |
|
|
31
32
|
|
|
32
33
|
<Aside type="tip">
|
|
@@ -45,6 +46,15 @@ with thinking effort `auto` (enabled) requests route to **K2.7 Code**, and with
|
|
|
45
46
|
(disabled) they route to **K2.6**. Set `KIMI_CODING_API_KEY` to your Kimi Coding Plan key.
|
|
46
47
|
</Aside>
|
|
47
48
|
|
|
49
|
+
<Aside type="tip">
|
|
50
|
+
**Ollama Cloud.** The `ollama_cloud` provider uses Ollama Cloud's direct
|
|
51
|
+
OpenAI-compatible API at `https://ollama.com/v1` with `OLLAMA_API_KEY`. Kolega
|
|
52
|
+
Code uses the direct API model IDs returned by Ollama, such as **`glm-5.2`** and
|
|
53
|
+
**`gpt-oss:120b`**, rather than local Ollama aliases such as `:cloud` or
|
|
54
|
+
`-cloud`. Ollama may deprecate or retire older cloud models, so the supported
|
|
55
|
+
model catalog should be refreshed periodically from Ollama's model library/API.
|
|
56
|
+
</Aside>
|
|
57
|
+
|
|
48
58
|
<Aside type="tip">
|
|
49
59
|
**Fireworks.ai.** The `fireworks` provider targets Fireworks' OpenAI-compatible
|
|
50
60
|
serverless endpoint (`https://api.fireworks.ai/inference/v1`) with `FIREWORKS_API_KEY`.
|
|
@@ -164,6 +174,8 @@ models in the TUI.
|
|
|
164
174
|
| Z.AI `glm-5.2` | `high`, `max` | `max` |
|
|
165
175
|
| Z.AI `glm-5.1` | `auto`, `none` | `auto` |
|
|
166
176
|
| Fireworks serverless reasoning models | `none`, `low`, `medium`, `high`, `max` | `medium` |
|
|
177
|
+
| Ollama Cloud thinking models | `none`, `low`, `medium`, `high`, `max` | `medium` |
|
|
178
|
+
| Ollama Cloud `gpt-oss:*` | `low`, `medium`, `high` | `medium` |
|
|
167
179
|
| Google `gemini-2.5-pro` | `auto`, `low`, `medium`, `high` | `medium` |
|
|
168
180
|
| OpenAI reasoning models | `low`, `medium`, `high` | `medium` |
|
|
169
181
|
|