kolega-code 0.9.0__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.9.0 → kolega_code-0.10.0}/.env.example +10 -2
- kolega_code-0.10.0/.github/workflows/ci.yml +204 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/.gitignore +1 -1
- {kolega_code-0.9.0 → kolega_code-0.10.0}/CHANGELOG.md +22 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/CONTRIBUTING.md +25 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/PKG-INFO +8 -1
- {kolega_code-0.9.0 → kolega_code-0.10.0}/README.md +7 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/docs/src/assets/coverage.svg +1 -1
- {kolega_code-0.9.0 → kolega_code-0.10.0}/docs/src/content/docs/configuration/environment-variables.md +30 -42
- kolega_code-0.10.0/docs/src/content/docs/configuration/prompt-overrides.md +145 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/__init__.py +1 -1
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/agent/__init__.py +1 -1
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/agent/baseagent.py +104 -1
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/agent/browseragent.py +2 -9
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/agent/coder.py +2 -9
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/agent/compression.py +3 -1
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/agent/conversation.py +13 -2
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/agent/generalagent.py +2 -8
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/agent/investigationagent.py +2 -9
- {kolega_code-0.9.0 → 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.9.0 → kolega_code-0.10.0}/kolega_code/agent/prompt_provider.py +89 -8
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/cli/app.py +137 -4
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/cli/config.py +134 -19
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/cli/main.py +73 -6
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/cli/messages.py +3 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/cli/provider_registry.py +1 -1
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/cli/slash_commands.py +1 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/cli/tui/agent_runtime.py +21 -3
- kolega_code-0.10.0/kolega_code/cli/tui/changes_screen.py +346 -0
- {kolega_code-0.9.0 → 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.9.0 → kolega_code-0.10.0}/kolega_code/cli/tui/settings_panel.py +27 -10
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/cli/tui/state.py +17 -0
- {kolega_code-0.9.0 → 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.9.0 → kolega_code-0.10.0}/kolega_code/cli/tui/transcript.py +75 -4
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/cli/tui/widgets.py +2 -0
- 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.9.0 → kolega_code-0.10.0}/kolega_code/services/terminal.py +51 -12
- {kolega_code-0.9.0 → kolega_code-0.10.0}/pyproject.toml +1 -1
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/llm/test_live_providers.py +22 -86
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/llm/test_openai_message_conversion.py +38 -1
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/services/test_terminal.py +43 -1
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/test_compression.py +57 -2
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/test_empty_message_handling.py +12 -0
- {kolega_code-0.9.0 → 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.9.0 → kolega_code-0.10.0}/tests/cli/test_app_bootstrap_settings.py +160 -0
- kolega_code-0.10.0/tests/cli/test_app_changes_inspector.py +256 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/cli/test_app_misc_commands.py +102 -1
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/cli/test_app_rendering_streaming.py +44 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/cli/test_app_rendering_terminal_logs.py +92 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/cli/test_cli_config.py +101 -1
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/cli/test_main.py +113 -0
- {kolega_code-0.9.0 → 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.9.0 → 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.9.0 → kolega_code-0.10.0}/tests/cli/test_tui_stylesheet.py +38 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/uv.lock +2 -2
- kolega_code-0.9.0/.github/workflows/ci.yml +0 -131
- kolega_code-0.9.0/kolega_code/llm/specs.py +0 -892
- {kolega_code-0.9.0 → kolega_code-0.10.0}/.githooks/pre-commit +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/.github/workflows/docs.yml +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/.github/workflows/release.yml +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/.pre-commit-config.yaml +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/LICENSE +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/RELEASING.md +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/SECURITY.md +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/docs/.gitignore +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/docs/README.md +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/docs/astro.config.mjs +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/docs/package-lock.json +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/docs/package.json +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/docs/public/favicon.svg +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/docs/src/assets/demo.gif +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/docs/src/assets/kolega-dark.svg +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/docs/src/assets/kolega-light.svg +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/docs/src/content/docs/cli/ask.md +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/docs/src/content/docs/cli/doctor.md +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/docs/src/content/docs/cli/overview.md +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/docs/src/content/docs/cli/sessions.md +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/docs/src/content/docs/concepts/agents.md +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/docs/src/content/docs/concepts/how-it-works.md +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/docs/src/content/docs/concepts/tools.md +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/docs/src/content/docs/configuration/providers-and-models.mdx +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/docs/src/content/docs/configuration/settings-and-api-keys.mdx +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/docs/src/content/docs/configuration/sign-in-with-chatgpt.mdx +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/docs/src/content/docs/getting-started/installation.mdx +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/docs/src/content/docs/getting-started/quick-start.mdx +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/docs/src/content/docs/gigacode.mdx +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/docs/src/content/docs/hooks.md +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/docs/src/content/docs/index.mdx +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/docs/src/content/docs/skills.mdx +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/docs/src/content/docs/tui/composer.md +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/docs/src/content/docs/tui/interface.md +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/docs/src/content/docs/tui/modes.md +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/docs/src/content/docs/tui/sessions-and-resume.md +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/docs/src/content/docs/tui/slash-commands.md +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/docs/src/content.config.ts +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/docs/src/styles/brand.css +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/docs/tsconfig.json +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/agent/common.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/agent/context.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/agent/errors.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/agent/orchestration/__init__.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/agent/orchestration/budget.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/agent/orchestration/errors.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/agent/orchestration/executor.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/agent/orchestration/guide.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/agent/orchestration/journal.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/agent/orchestration/runtime.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/agent/orchestration/types.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/agent/prompt_templates/auxiliary/compression/summary.system.md +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/agent/prompt_templates/auxiliary/compression/summary.user.md.j2 +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/agent/prompt_templates/auxiliary/terminal/output_summary.system.md +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/agent/prompt_templates/auxiliary/terminal/safety.system.md +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/agent/prompt_templates/auxiliary/tools/think_hard.system.md +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/agent/prompt_templates/extensions/cli/planning_questions.md +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/agent/prompt_templates/extensions/cli/shared_task_list.md +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/agent/prompt_templates/extensions/skills/catalog.md.j2 +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/agent/prompt_templates/system/agents/browser.md.j2 +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/agent/prompt_templates/system/agents/coder_cli.md.j2 +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/agent/prompt_templates/system/agents/general.md.j2 +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/agent/prompt_templates/system/agents/investigation.md.j2 +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/agent/prompt_templates/system/agents/planning.md.j2 +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/agent/prompt_templates/system/includes/agents_md_instructions.md +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/agent/prompt_templates/system/includes/environment_variables/workspace_env_vars.md +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/agent/prompt_templates/system/includes/frontend_guidance.md +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/agent/prompt_templates/system/includes/starter_templates/expo.md +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/agent/prompt_templates/system/includes/starter_templates/html_website.md +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/agent/prompt_templates/system/includes/starter_templates/mern_stack.md +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/agent/prompt_templates/system/includes/starter_templates/react_vite_shadcdn.md +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/agent/prompt_templates/user_tasks/cli/implement_plan.md.j2 +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/agent/prompt_templates/user_tasks/cli/init_agents.md.j2 +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/agent/prompts.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/agent/tool_backend/agent_tool.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/agent/tool_backend/base_tool.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/agent/tool_backend/browser_tool.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/agent/tool_backend/build_tool.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/agent/tool_backend/create_file_tool.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/agent/tool_backend/edit_preview.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/agent/tool_backend/glob_tool.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/agent/tool_backend/list_directory_tool.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/agent/tool_backend/memory_tool.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/agent/tool_backend/read_file_tool.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/agent/tool_backend/read_image_tool.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/agent/tool_backend/replace_entire_file_tool.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/agent/tool_backend/replace_lines_tool.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/agent/tool_backend/search_and_replace_tool.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/agent/tool_backend/search_backends/__init__.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/agent/tool_backend/search_backends/base.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/agent/tool_backend/search_backends/duckduckgo.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/agent/tool_backend/search_backends/errors.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/agent/tool_backend/search_backends/firecrawl.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/agent/tool_backend/search_backends/models.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/agent/tool_backend/search_backends/searxng.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/agent/tool_backend/search_backends/tavily.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/agent/tool_backend/search_codebase_tool.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/agent/tool_backend/streaming_tool.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/agent/tool_backend/terminal_tool.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/agent/tool_backend/think_hard_tool.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/agent/tool_backend/web_fetch_tool.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/agent/tool_backend/web_search_tool.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/agent/tool_backend/workflow_tool.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/agent/tools.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/agent/utils/commands.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/auth/__init__.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/auth/_jwt.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/auth/chatgpt_oauth.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/auth/constants.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/auth/tokens.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/cli/__init__.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/cli/clipboard_image.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/cli/connection.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/cli/file_index.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/cli/mentions.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/cli/session_store.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/cli/settings.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/cli/skills.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/cli/theme.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/cli/tui/__init__.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/cli/tui/constants.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/cli/tui/prompt_flows.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/cli/tui/status_dashboard.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/cli/tui/sub_agent_screen.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/cli/updater.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/config.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/events.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/hooks/__init__.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/hooks/backends.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/hooks/config.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/hooks/dispatcher.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/hooks/events.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/hooks/matcher.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/hooks/outcome.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/llm/client.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/llm/exceptions.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/llm/instrumented_client.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/llm/models.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/llm/providers/__init__.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/llm/providers/anthropic.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/llm/providers/base.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/llm/providers/chatgpt_oauth.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/llm/providers/google.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/llm/providers/models.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/llm/providers/openai.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/llm/providers/openai_responses.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/llm/providers/responses_common.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/llm/ratelimit.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/llm/tool_execution_ids.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/local_state.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/models/__init__.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/models/sandbox_terminal_state.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/permissions.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/runtime.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/sandbox/README.md +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/sandbox/__init__.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/sandbox/async_filesystem.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/sandbox/base.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/sandbox/browser.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/sandbox/event_loop.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/sandbox/filesystem.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/sandbox/local.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/sandbox/serializer.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/sandbox/terminal.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/sandbox/utils.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/services/base.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/services/browser.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/services/file_system.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/services/html.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/services/terminal_buffer.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/tools/__init__.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/tools/core.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/tools/definitions.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/tools/registry.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/utils/__init__.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/kolega_code/utils/images.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/run_tests.sh +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/scripts/check-dev-hooks.sh +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/scripts/install-kolega-code.sh +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/scripts/setup-dev.sh +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/__init__.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/__init__.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/compaction_helpers.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/conftest.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/llm/__init__.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/llm/_token_counting_utils.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/llm/test_anthropic_token_counting.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/llm/test_billing_openai_cache.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/llm/test_chatgpt_live.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/llm/test_chatgpt_oauth_auth_config.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/llm/test_chatgpt_oauth_conversion.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/llm/test_chatgpt_oauth_provider.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/llm/test_chatgpt_oauth_provider_generate.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/llm/test_chatgpt_oauth_streaming.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/llm/test_client.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/llm/test_client_live.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/llm/test_client_runtime.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/llm/test_dashscope_mapping.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/llm/test_error_boundary.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/llm/test_exceptions.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/llm/test_google_thought_signature.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/llm/test_google_tool_signature_live.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/llm/test_instrumented_client.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/llm/test_instrumented_client_integration.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/llm/test_instrumented_client_stream.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/llm/test_langfuse_normalization.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/llm/test_message_conversion.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/llm/test_model_specs.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/llm/test_openai_cached_tokens.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/llm/test_openai_cached_tokens_stream.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/llm/test_openai_responses_provider.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/llm/test_openai_token_counting.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/llm/test_provider_usage_mapping.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/llm/test_supports_vision.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/llm/test_thinking_effort.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/llm/test_tool_execution_ids.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/orchestration/__init__.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/orchestration/test_orchestration.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/services/__init__.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/services/test_browser.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/services/test_browser_console_logs.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/services/test_browser_content.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/services/test_browser_integration.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/services/test_browser_parity.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/services/test_file_system.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/services/test_file_system_integration.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/services/test_file_system_path.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/services/test_local_file_system.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/services/test_sandbox_terminal_input.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/services/test_terminal_buffer.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/services/test_terminal_state_serializer.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/test_agent_tools_inventory.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/test_base_agent.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/test_base_agent_anthropic_history_validation.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/test_base_agent_compaction.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/test_base_agent_effective_history.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/test_base_agent_history_serialization.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/test_base_agent_prompt_context.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/test_base_agent_role_overrides.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/test_base_agent_runtime.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/test_base_agent_tool_call_repair.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/test_base_agent_tool_call_repair_integration.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/test_base_agent_tool_execution.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/test_coder_attachments.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/test_coder_prompt_extensions.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/test_commands.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/test_compaction_integration.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/test_compaction_persistence.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/test_compaction_subagent.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/test_compaction_tui_events.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/test_compress_command.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/test_conversation_compaction.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/test_duplicate_tool_results.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/test_event_emitter.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/test_general_agent.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/test_gigacode_gating.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/test_history_image_blocks.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/test_hooks_integration.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/test_html.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/test_image_compat.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/test_parallel_tool_calls.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/test_permissions.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/test_planning_agent.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/test_prompt_provider.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/test_prompts.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/test_read_image_tool.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/test_tool_collection_builtin_dispatch.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/test_tool_collection_config.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/test_tool_collection_extensions.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/test_tool_collection_initialization.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/test_tool_collection_memory.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/test_tool_registry.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/test_tools.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/tool_backend/__init__.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/tool_backend/test_agent_tool.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/tool_backend/test_base_tool.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/tool_backend/test_browser_tool.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/tool_backend/test_build_tool.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/tool_backend/test_create_file_tool.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/tool_backend/test_edit_preview.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/tool_backend/test_glob_tool.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/tool_backend/test_glob_tool_sandbox_parity.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/tool_backend/test_list_directory_tool.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/tool_backend/test_read_file_tool.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/tool_backend/test_replace_entire_file_tool.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/tool_backend/test_replace_lines_tool.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/tool_backend/test_search_and_replace_tool.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/tool_backend/test_search_codebase_tool.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/tool_backend/test_terminal_tool.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/tool_backend/test_think_hard_integration.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/tool_backend/test_think_hard_streaming.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/tool_backend/test_think_hard_streaming_content.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/tool_backend/test_think_hard_streaming_errors.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/tool_backend/test_think_hard_streaming_updates.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/tool_backend/test_web_fetch_tool.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/tool_backend/test_web_search_tool.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/agent/tool_backend/test_workflow_tool.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/auth/__init__.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/auth/test_chatgpt_oauth.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/auth/test_tokens.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/cli/__init__.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/cli/_app_test_utils.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/cli/test_app.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/cli/test_app_agent_wiring.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/cli/test_app_compaction_restore.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/cli/test_app_composer_commands.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/cli/test_app_composer_input.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/cli/test_app_conversation_rendering.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/cli/test_app_focus_behavior.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/cli/test_app_image_vision_warning.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/cli/test_app_mention_dropdown.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/cli/test_app_model_effort_commands.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/cli/test_app_model_switch_vision.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/cli/test_app_modes_planning.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/cli/test_app_navigation_commands.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/cli/test_app_permission_prompts.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/cli/test_app_persistence_history.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/cli/test_app_plan_lifecycle.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/cli/test_app_planning_questions.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/cli/test_app_planning_restore.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/cli/test_app_rendering_entries.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/cli/test_app_rendering_errors.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/cli/test_app_rendering_scroll.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/cli/test_app_rendering_selection.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/cli/test_app_rendering_status.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/cli/test_app_rendering_tools.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/cli/test_app_skill_commands.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/cli/test_app_slash_dropdown.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/cli/test_app_status_modes.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/cli/test_app_sub_agents_workflows.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/cli/test_clipboard_image.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/cli/test_connection.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/cli/test_file_index.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/cli/test_mentions.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/cli/test_session_store.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/cli/test_settings.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/cli/test_skills.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/cli/test_themes.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/cli/test_updater.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/conftest.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/hooks/__init__.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/hooks/test_hooks.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/tools/__init__.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/tools/test_definitions.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/utils/__init__.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.0}/tests/utils/test_images.py +0 -0
- {kolega_code-0.9.0 → kolega_code-0.10.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,28 @@ 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
|
+
|
|
9
31
|
## 0.9.0 - 2026-06-24
|
|
10
32
|
|
|
11
33
|
### 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
|
|
@@ -111,42 +115,26 @@ Optional [Langfuse](https://langfuse.com/) tracing of LLM usage.
|
|
|
111
115
|
| `LANGFUSE_PUBLIC_KEY` | Langfuse public key |
|
|
112
116
|
| `LANGFUSE_SECRET_KEY` | Langfuse secret key |
|
|
113
117
|
|
|
114
|
-
##
|
|
118
|
+
## About project `.env` files
|
|
115
119
|
|
|
116
|
-
Kolega Code automatically
|
|
117
|
-
|
|
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`.
|
|
118
124
|
|
|
119
|
-
|
|
120
|
-
# Pick one provider's key (or several)
|
|
121
|
-
MOONSHOT_API_KEY=
|
|
122
|
-
DEEPSEEK_API_KEY=
|
|
123
|
-
FIREWORKS_API_KEY=
|
|
124
|
-
ANTHROPIC_API_KEY=
|
|
125
|
-
OLLAMA_API_KEY=
|
|
125
|
+
Use one of these instead:
|
|
126
126
|
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
# Fireworks example:
|
|
133
|
-
# KOLEGA_CODE_PROVIDER=fireworks
|
|
134
|
-
# KOLEGA_CODE_MODEL=accounts/fireworks/models/glm-5p2
|
|
135
|
-
|
|
136
|
-
# Ollama Cloud example:
|
|
137
|
-
# KOLEGA_CODE_PROVIDER=ollama_cloud
|
|
138
|
-
# KOLEGA_CODE_MODEL=glm-5.2
|
|
139
|
-
|
|
140
|
-
# Optional: web search
|
|
141
|
-
KOLEGA_CODE_WEB_SEARCH_BACKEND=duckduckgo
|
|
142
|
-
|
|
143
|
-
# Optional: Langfuse tracing
|
|
144
|
-
LANGFUSE_HOST=https://us.cloud.langfuse.com
|
|
145
|
-
LANGFUSE_PUBLIC_KEY=
|
|
146
|
-
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
|
|
147
132
|
```
|
|
148
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
|
+
|
|
149
137
|
:::caution
|
|
150
|
-
Keep `.env` out of version control —
|
|
151
|
-
`.gitignore`.
|
|
138
|
+
Keep project `.env` files out of version control — they often hold application
|
|
139
|
+
secrets. Add them to your `.gitignore`.
|
|
152
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.
|