kolega-code 0.2.0__tar.gz → 0.3.1__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.
Files changed (220) hide show
  1. {kolega_code-0.2.0 → kolega_code-0.3.1}/.env.example +2 -0
  2. {kolega_code-0.2.0 → kolega_code-0.3.1}/.github/workflows/docs.yml +1 -1
  3. {kolega_code-0.2.0 → kolega_code-0.3.1}/.github/workflows/release.yml +34 -0
  4. {kolega_code-0.2.0 → kolega_code-0.3.1}/PKG-INFO +6 -3
  5. {kolega_code-0.2.0 → kolega_code-0.3.1}/README.md +4 -1
  6. {kolega_code-0.2.0 → kolega_code-0.3.1}/RELEASING.md +42 -20
  7. {kolega_code-0.2.0 → kolega_code-0.3.1}/docs/package-lock.json +498 -713
  8. {kolega_code-0.2.0 → kolega_code-0.3.1}/docs/package.json +2 -2
  9. {kolega_code-0.2.0 → kolega_code-0.3.1}/docs/src/content/docs/cli/doctor.md +3 -0
  10. {kolega_code-0.2.0 → kolega_code-0.3.1}/docs/src/content/docs/cli/overview.md +3 -1
  11. {kolega_code-0.2.0 → kolega_code-0.3.1}/docs/src/content/docs/configuration/environment-variables.md +8 -2
  12. {kolega_code-0.2.0 → kolega_code-0.3.1}/docs/src/content/docs/configuration/providers-and-models.mdx +20 -0
  13. {kolega_code-0.2.0 → kolega_code-0.3.1}/docs/src/content/docs/getting-started/installation.mdx +9 -2
  14. {kolega_code-0.2.0 → kolega_code-0.3.1}/docs/src/content/docs/tui/sessions-and-resume.md +1 -1
  15. {kolega_code-0.2.0 → kolega_code-0.3.1}/docs/src/content/docs/tui/slash-commands.md +2 -0
  16. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/__init__.py +1 -1
  17. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/__init__.py +1 -1
  18. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tests/llm/test_thinking_effort.py +44 -0
  19. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/cli/app.py +47 -2
  20. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/cli/config.py +4 -0
  21. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/cli/main.py +33 -3
  22. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/cli/messages.py +4 -0
  23. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/cli/provider_registry.py +9 -0
  24. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/cli/slash_commands.py +2 -0
  25. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/cli/tests/test_app.py +67 -2
  26. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/cli/tests/test_main.py +88 -9
  27. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/cli/tests/test_slash_commands.py +2 -0
  28. kolega_code-0.3.1/kolega_code/cli/tests/test_updater.py +87 -0
  29. kolega_code-0.3.1/kolega_code/cli/updater.py +102 -0
  30. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/config.py +6 -0
  31. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/llm/client.py +4 -0
  32. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/llm/instrumented_client.py +3 -3
  33. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/llm/providers/anthropic.py +1 -1
  34. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/llm/specs.py +45 -0
  35. {kolega_code-0.2.0 → kolega_code-0.3.1}/pyproject.toml +2 -2
  36. {kolega_code-0.2.0 → kolega_code-0.3.1}/scripts/install-kolega-code.sh +1 -1
  37. {kolega_code-0.2.0 → kolega_code-0.3.1}/uv.lock +52 -631
  38. {kolega_code-0.2.0 → kolega_code-0.3.1}/.github/workflows/ci.yml +0 -0
  39. {kolega_code-0.2.0 → kolega_code-0.3.1}/.gitignore +0 -0
  40. {kolega_code-0.2.0 → kolega_code-0.3.1}/CONTRIBUTING.md +0 -0
  41. {kolega_code-0.2.0 → kolega_code-0.3.1}/LICENSE +0 -0
  42. {kolega_code-0.2.0 → kolega_code-0.3.1}/SECURITY.md +0 -0
  43. {kolega_code-0.2.0 → kolega_code-0.3.1}/conftest.py +0 -0
  44. {kolega_code-0.2.0 → kolega_code-0.3.1}/docs/.gitignore +0 -0
  45. {kolega_code-0.2.0 → kolega_code-0.3.1}/docs/README.md +0 -0
  46. {kolega_code-0.2.0 → kolega_code-0.3.1}/docs/astro.config.mjs +0 -0
  47. {kolega_code-0.2.0 → kolega_code-0.3.1}/docs/public/favicon.svg +0 -0
  48. {kolega_code-0.2.0 → kolega_code-0.3.1}/docs/src/assets/kolega-dark.svg +0 -0
  49. {kolega_code-0.2.0 → kolega_code-0.3.1}/docs/src/assets/kolega-light.svg +0 -0
  50. {kolega_code-0.2.0 → kolega_code-0.3.1}/docs/src/content/docs/cli/ask.md +0 -0
  51. {kolega_code-0.2.0 → kolega_code-0.3.1}/docs/src/content/docs/cli/sessions.md +0 -0
  52. {kolega_code-0.2.0 → kolega_code-0.3.1}/docs/src/content/docs/concepts/agents.md +0 -0
  53. {kolega_code-0.2.0 → kolega_code-0.3.1}/docs/src/content/docs/concepts/how-it-works.md +0 -0
  54. {kolega_code-0.2.0 → kolega_code-0.3.1}/docs/src/content/docs/concepts/tools.md +0 -0
  55. {kolega_code-0.2.0 → kolega_code-0.3.1}/docs/src/content/docs/configuration/settings-and-api-keys.mdx +0 -0
  56. {kolega_code-0.2.0 → kolega_code-0.3.1}/docs/src/content/docs/getting-started/introduction.md +0 -0
  57. {kolega_code-0.2.0 → kolega_code-0.3.1}/docs/src/content/docs/getting-started/quick-start.mdx +0 -0
  58. {kolega_code-0.2.0 → kolega_code-0.3.1}/docs/src/content/docs/index.mdx +0 -0
  59. {kolega_code-0.2.0 → kolega_code-0.3.1}/docs/src/content/docs/skills.mdx +0 -0
  60. {kolega_code-0.2.0 → kolega_code-0.3.1}/docs/src/content/docs/tui/composer.md +0 -0
  61. {kolega_code-0.2.0 → kolega_code-0.3.1}/docs/src/content/docs/tui/interface.md +0 -0
  62. {kolega_code-0.2.0 → kolega_code-0.3.1}/docs/src/content/docs/tui/modes.md +0 -0
  63. {kolega_code-0.2.0 → kolega_code-0.3.1}/docs/src/content.config.ts +0 -0
  64. {kolega_code-0.2.0 → kolega_code-0.3.1}/docs/src/styles/brand.css +0 -0
  65. {kolega_code-0.2.0 → kolega_code-0.3.1}/docs/tsconfig.json +0 -0
  66. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/baseagent.py +0 -0
  67. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/browseragent.py +0 -0
  68. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/coder.py +0 -0
  69. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/common.py +0 -0
  70. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/compression.py +0 -0
  71. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/context.py +0 -0
  72. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/conversation.py +0 -0
  73. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/generalagent.py +0 -0
  74. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/investigationagent.py +0 -0
  75. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/planningagent.py +0 -0
  76. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/prompt_provider.py +0 -0
  77. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/prompt_templates/agents/browser.j2 +0 -0
  78. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/prompt_templates/agents/coder_cli_mode.j2 +0 -0
  79. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/prompt_templates/agents/general.j2 +0 -0
  80. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/prompt_templates/agents/investigation.j2 +0 -0
  81. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/prompt_templates/common/frontend_guidance.md +0 -0
  82. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/prompt_templates/common/kolega_md_instructions.md +0 -0
  83. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/prompt_templates/environment_variables/workspace_env_vars.md +0 -0
  84. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/prompt_templates/template_guidance/expo-template.md +0 -0
  85. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/prompt_templates/template_guidance/html-website-template.md +0 -0
  86. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/prompt_templates/template_guidance/mern-stack-template.md +0 -0
  87. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/prompt_templates/template_guidance/react-vite-shadcdn-template.md +0 -0
  88. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/prompts.py +0 -0
  89. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tests/__init__.py +0 -0
  90. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tests/llm/__init__.py +0 -0
  91. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tests/llm/test_anthropic_token_counting.py +0 -0
  92. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tests/llm/test_billing_openai_cache.py +0 -0
  93. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tests/llm/test_client.py +0 -0
  94. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tests/llm/test_dashscope_mapping.py +0 -0
  95. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tests/llm/test_error_boundary.py +0 -0
  96. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tests/llm/test_exceptions.py +0 -0
  97. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tests/llm/test_google_thought_signature.py +0 -0
  98. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tests/llm/test_google_tool_signature_live.py +0 -0
  99. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tests/llm/test_instrumented_client.py +0 -0
  100. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tests/llm/test_instrumented_client_integration.py +0 -0
  101. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tests/llm/test_langfuse_normalization.py +0 -0
  102. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tests/llm/test_live_providers.py +0 -0
  103. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tests/llm/test_model_specs.py +0 -0
  104. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tests/llm/test_openai_cached_tokens.py +0 -0
  105. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tests/llm/test_openai_cached_tokens_stream.py +0 -0
  106. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tests/llm/test_openai_message_conversion.py +0 -0
  107. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tests/llm/test_openai_token_counting.py +0 -0
  108. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tests/llm/test_tool_execution_ids.py +0 -0
  109. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tests/services/__init__.py +0 -0
  110. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tests/services/test_browser.py +0 -0
  111. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tests/services/test_browser_parity.py +0 -0
  112. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tests/services/test_file_system.py +0 -0
  113. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tests/services/test_sandbox_terminal_input.py +0 -0
  114. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tests/services/test_terminal.py +0 -0
  115. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tests/services/test_terminal_command_tracking.py +0 -0
  116. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tests/services/test_terminal_state_serializer.py +0 -0
  117. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tests/test_agent_tools_inventory.py +0 -0
  118. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tests/test_base_agent.py +0 -0
  119. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tests/test_coder_attachments.py +0 -0
  120. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tests/test_coder_prompt_extensions.py +0 -0
  121. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tests/test_commands.py +0 -0
  122. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tests/test_duplicate_tool_results.py +0 -0
  123. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tests/test_empty_message_handling.py +0 -0
  124. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tests/test_general_agent.py +0 -0
  125. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tests/test_html.py +0 -0
  126. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tests/test_parallel_tool_calls.py +0 -0
  127. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tests/test_planning_agent.py +0 -0
  128. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tests/test_prompt_provider.py +0 -0
  129. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tests/test_tool_registry.py +0 -0
  130. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tests/test_tools.py +0 -0
  131. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tests/tool_backend/__init__.py +0 -0
  132. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tests/tool_backend/test_agent_tool.py +0 -0
  133. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tests/tool_backend/test_base_tool.py +0 -0
  134. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tests/tool_backend/test_browser_tool.py +0 -0
  135. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tests/tool_backend/test_build_tool.py +0 -0
  136. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tests/tool_backend/test_create_file_tool.py +0 -0
  137. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tests/tool_backend/test_glob_tool.py +0 -0
  138. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tests/tool_backend/test_glob_tool_sandbox_parity.py +0 -0
  139. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tests/tool_backend/test_list_directory_tool.py +0 -0
  140. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tests/tool_backend/test_read_file_tool.py +0 -0
  141. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tests/tool_backend/test_replace_entire_file_tool.py +0 -0
  142. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tests/tool_backend/test_replace_lines_tool.py +0 -0
  143. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tests/tool_backend/test_search_and_replace_tool.py +0 -0
  144. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tests/tool_backend/test_search_codebase_tool.py +0 -0
  145. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tests/tool_backend/test_terminal_tool.py +0 -0
  146. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tests/tool_backend/test_think_hard_integration.py +0 -0
  147. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tests/tool_backend/test_think_hard_streaming.py +0 -0
  148. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tests/tool_backend/test_web_fetch_tool.py +0 -0
  149. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tool_backend/agent_tool.py +0 -0
  150. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tool_backend/apply_patch_tool.py +0 -0
  151. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tool_backend/base_tool.py +0 -0
  152. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tool_backend/browser_tool.py +0 -0
  153. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tool_backend/build_tool.py +0 -0
  154. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tool_backend/create_file_tool.py +0 -0
  155. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tool_backend/glob_tool.py +0 -0
  156. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tool_backend/list_directory_tool.py +0 -0
  157. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tool_backend/memory_tool.py +0 -0
  158. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tool_backend/read_file_tool.py +0 -0
  159. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tool_backend/replace_entire_file_tool.py +0 -0
  160. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tool_backend/replace_lines_tool.py +0 -0
  161. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tool_backend/search_and_replace_tool.py +0 -0
  162. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tool_backend/search_codebase_tool.py +0 -0
  163. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tool_backend/streaming_tool.py +0 -0
  164. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tool_backend/terminal_tool.py +0 -0
  165. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tool_backend/think_hard_tool.py +0 -0
  166. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tool_backend/web_fetch_tool.py +0 -0
  167. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/tools.py +0 -0
  168. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/agent/utils/commands.py +0 -0
  169. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/cli/__init__.py +0 -0
  170. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/cli/connection.py +0 -0
  171. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/cli/file_index.py +0 -0
  172. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/cli/mentions.py +0 -0
  173. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/cli/session_store.py +0 -0
  174. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/cli/settings.py +0 -0
  175. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/cli/skills.py +0 -0
  176. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/cli/tests/__init__.py +0 -0
  177. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/cli/tests/test_cli_config.py +0 -0
  178. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/cli/tests/test_connection.py +0 -0
  179. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/cli/tests/test_file_index.py +0 -0
  180. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/cli/tests/test_mentions.py +0 -0
  181. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/cli/tests/test_session_store.py +0 -0
  182. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/cli/tests/test_settings.py +0 -0
  183. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/cli/tests/test_skills.py +0 -0
  184. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/cli/theme.py +0 -0
  185. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/events.py +0 -0
  186. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/llm/exceptions.py +0 -0
  187. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/llm/models.py +0 -0
  188. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/llm/providers/__init__.py +0 -0
  189. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/llm/providers/base.py +0 -0
  190. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/llm/providers/google.py +0 -0
  191. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/llm/providers/models.py +0 -0
  192. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/llm/providers/openai.py +0 -0
  193. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/llm/ratelimit.py +0 -0
  194. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/llm/tool_execution_ids.py +0 -0
  195. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/models/__init__.py +0 -0
  196. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/models/sandbox_terminal_state.py +0 -0
  197. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/runtime.py +0 -0
  198. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/sandbox/README.md +0 -0
  199. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/sandbox/__init__.py +0 -0
  200. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/sandbox/async_filesystem.py +0 -0
  201. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/sandbox/base.py +0 -0
  202. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/sandbox/browser.py +0 -0
  203. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/sandbox/event_loop.py +0 -0
  204. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/sandbox/filesystem.py +0 -0
  205. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/sandbox/local.py +0 -0
  206. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/sandbox/serializer.py +0 -0
  207. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/sandbox/terminal.py +0 -0
  208. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/sandbox/utils.py +0 -0
  209. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/services/base.py +0 -0
  210. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/services/browser.py +0 -0
  211. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/services/file_system.py +0 -0
  212. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/services/html.py +0 -0
  213. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/services/terminal.py +0 -0
  214. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/tools/__init__.py +0 -0
  215. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/tools/core.py +0 -0
  216. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/tools/definitions.py +0 -0
  217. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/tools/registry.py +0 -0
  218. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/tools/tests/__init__.py +0 -0
  219. {kolega_code-0.2.0 → kolega_code-0.3.1}/kolega_code/tools/tests/test_definitions.py +0 -0
  220. {kolega_code-0.2.0 → kolega_code-0.3.1}/run_tests.sh +0 -0
@@ -6,6 +6,8 @@ OPENAI_API_KEY=
6
6
  GOOGLE_API_KEY=
7
7
  MOONSHOT_API_KEY=
8
8
  DEEPSEEK_API_KEY=
9
+ ZAI_API_KEY=
10
+ KIMI_CODING_API_KEY=
9
11
 
10
12
  KOLEGA_CODE_THINKING_EFFORT=
11
13
 
@@ -34,7 +34,7 @@ jobs:
34
34
  - name: Setup Node
35
35
  uses: actions/setup-node@v4
36
36
  with:
37
- node-version: 20
37
+ node-version: "22.12.0"
38
38
  cache: npm
39
39
  cache-dependency-path: docs/package-lock.json
40
40
 
@@ -85,3 +85,37 @@ jobs:
85
85
 
86
86
  - name: Publish distributions to PyPI
87
87
  uses: pypa/gh-action-pypi-publish@release/v1
88
+
89
+ github-release:
90
+ name: Create GitHub Release
91
+ needs: publish
92
+ runs-on: ubuntu-latest
93
+ permissions:
94
+ contents: write
95
+ env:
96
+ GH_TOKEN: ${{ github.token }}
97
+ steps:
98
+ - name: Create release
99
+ run: |
100
+ if gh release view "$GITHUB_REF_NAME" --repo "$GITHUB_REPOSITORY" >/dev/null 2>&1; then
101
+ echo "GitHub Release $GITHUB_REF_NAME already exists."
102
+ exit 0
103
+ fi
104
+
105
+ version="${GITHUB_REF_NAME#v}"
106
+ prelude=$(printf '%s\n\n%s\n\n%s\n%s\n%s\n\n%s\n' \
107
+ "PyPI: https://pypi.org/project/kolega-code/${version}/" \
108
+ "Update with:" \
109
+ '```bash' \
110
+ 'uv tool install --force kolega-code' \
111
+ '```' \
112
+ "PyPI is the canonical package distribution. GitHub provides source archives for this release."
113
+ )
114
+
115
+ gh release create "$GITHUB_REF_NAME" \
116
+ --repo "$GITHUB_REPOSITORY" \
117
+ --verify-tag \
118
+ --title "$GITHUB_REF_NAME" \
119
+ --latest \
120
+ --generate-notes \
121
+ --notes "$prelude"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: kolega-code
3
- Version: 0.2.0
3
+ Version: 0.3.1
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/
@@ -43,12 +43,12 @@ Classifier: Topic :: Utilities
43
43
  Requires-Python: >=3.11
44
44
  Requires-Dist: anthropic==0.101.0
45
45
  Requires-Dist: beautifulsoup4==4.14.3
46
- Requires-Dist: browser-use==0.1.40
47
46
  Requires-Dist: google-genai==2.0.1
48
47
  Requires-Dist: jinja2==3.1.6
49
48
  Requires-Dist: langfuse==3.14.5
50
49
  Requires-Dist: nest-asyncio==1.6.0
51
50
  Requires-Dist: openai==1.109.1
51
+ Requires-Dist: packaging==25.0
52
52
  Requires-Dist: pathspec==1.1.1
53
53
  Requires-Dist: playwright==1.59.0
54
54
  Requires-Dist: psutil==7.2.2
@@ -96,10 +96,13 @@ kolega-code --version
96
96
  Upgrade or uninstall:
97
97
 
98
98
  ```bash
99
- uv tool upgrade kolega-code
99
+ kolega-code update
100
100
  uv tool uninstall kolega-code
101
101
  ```
102
102
 
103
+ Running the installer again also updates an existing install to the latest
104
+ released version.
105
+
103
106
  Run the Textual UI and open the Settings tab to pick any provider and model from the catalog, choose the model's thinking effort, and save your API key:
104
107
 
105
108
  ```bash
@@ -28,10 +28,13 @@ kolega-code --version
28
28
  Upgrade or uninstall:
29
29
 
30
30
  ```bash
31
- uv tool upgrade kolega-code
31
+ kolega-code update
32
32
  uv tool uninstall kolega-code
33
33
  ```
34
34
 
35
+ Running the installer again also updates an existing install to the latest
36
+ released version.
37
+
35
38
  Run the Textual UI and open the Settings tab to pick any provider and model from the catalog, choose the model's thinking effort, and save your API key:
36
39
 
37
40
  ```bash
@@ -1,9 +1,49 @@
1
1
  # Releasing Kolega Code
2
2
 
3
3
  This project publishes the `kolega-code` package to PyPI and serves the public
4
- installer from `https://kolega.dev/install-kolega-code.sh`.
4
+ installer from `https://kolega.dev/install-kolega-code.sh`. Each published
5
+ version should also have a GitHub Release for its matching tag.
5
6
 
6
- ## First PyPI release
7
+ ## Release process
8
+
9
+ 1. Confirm `pyproject.toml`, `uv.lock`, and package `__version__` values have
10
+ the release version.
11
+
12
+ 2. Run the fast test suite:
13
+
14
+ ```bash
15
+ uv run pytest -ra --durations=50 --import-mode=importlib -m "not slow"
16
+ ```
17
+
18
+ 3. Commit the release bump:
19
+
20
+ ```bash
21
+ git commit -m "chore: release v0.3.0"
22
+ ```
23
+
24
+ 4. Create and push a matching tag:
25
+
26
+ ```bash
27
+ git tag v0.3.0
28
+ git push origin main
29
+ git push origin v0.3.0
30
+ ```
31
+
32
+ 5. Confirm the `Release` GitHub Actions workflow completes. It builds and tests
33
+ the package, publishes to PyPI, then creates the GitHub Release.
34
+
35
+ 6. Verify the release:
36
+
37
+ ```bash
38
+ uv tool install --force kolega-code
39
+ kolega-code --version
40
+ gh release view v0.3.0 --repo kolega-ai/kolega-code
41
+ ```
42
+
43
+ The GitHub Release uses PyPI as the canonical package distribution and keeps
44
+ GitHub's automatic source archives as the only release assets.
45
+
46
+ ## First PyPI release setup
7
47
 
8
48
  The first release can be published from the existing maintainer PyPI user
9
49
  account, then transferred to the Kolega PyPI organization after PyPI approves
@@ -24,24 +64,6 @@ the organization request.
24
64
  Require approval from trusted maintainers before deployment. The release
25
65
  workflow will pause before publishing to PyPI.
26
66
 
27
- 3. Confirm `pyproject.toml` has the release version.
28
-
29
- 4. Create and push a matching tag:
30
-
31
- ```bash
32
- git tag v0.2.0
33
- git push origin v0.2.0
34
- ```
35
-
36
- 5. Approve the `pypi` environment deployment in GitHub Actions.
37
-
38
- 6. Verify the release:
39
-
40
- ```bash
41
- uv tool install --force kolega-code
42
- kolega-code --version
43
- ```
44
-
45
67
  ## Installer handoff
46
68
 
47
69
  The canonical installer source is tracked at: