kolega-code 0.3.0__tar.gz → 0.3.2__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 (235) hide show
  1. {kolega_code-0.3.0 → kolega_code-0.3.2}/.github/workflows/docs.yml +1 -1
  2. {kolega_code-0.3.0 → kolega_code-0.3.2}/.github/workflows/release.yml +34 -0
  3. {kolega_code-0.3.0 → kolega_code-0.3.2}/.gitignore +1 -0
  4. {kolega_code-0.3.0 → kolega_code-0.3.2}/PKG-INFO +1 -2
  5. {kolega_code-0.3.0 → kolega_code-0.3.2}/RELEASING.md +58 -20
  6. {kolega_code-0.3.0 → kolega_code-0.3.2}/docs/package-lock.json +498 -713
  7. {kolega_code-0.3.0 → kolega_code-0.3.2}/docs/package.json +2 -2
  8. {kolega_code-0.3.0 → kolega_code-0.3.2}/docs/src/content/docs/cli/ask.md +8 -0
  9. {kolega_code-0.3.0 → kolega_code-0.3.2}/docs/src/content/docs/cli/overview.md +1 -0
  10. {kolega_code-0.3.0 → kolega_code-0.3.2}/docs/src/content/docs/concepts/tools.md +4 -0
  11. {kolega_code-0.3.0 → kolega_code-0.3.2}/docs/src/content/docs/tui/interface.md +6 -3
  12. {kolega_code-0.3.0 → kolega_code-0.3.2}/docs/src/content/docs/tui/modes.md +8 -0
  13. {kolega_code-0.3.0 → kolega_code-0.3.2}/docs/src/content/docs/tui/slash-commands.md +11 -0
  14. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/__init__.py +1 -1
  15. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/__init__.py +1 -1
  16. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/baseagent.py +70 -0
  17. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/browseragent.py +5 -1
  18. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/coder.py +4 -0
  19. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/compression.py +2 -2
  20. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/context.py +3 -0
  21. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/generalagent.py +4 -0
  22. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/investigationagent.py +5 -1
  23. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/planningagent.py +6 -43
  24. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/prompt_provider.py +5 -5
  25. kolega_code-0.3.2/kolega_code/agent/prompt_templates/auxiliary/compression/summary.system.md +59 -0
  26. kolega_code-0.3.2/kolega_code/agent/prompt_templates/auxiliary/compression/summary.user.md.j2 +18 -0
  27. kolega_code-0.3.2/kolega_code/agent/prompt_templates/auxiliary/terminal/output_summary.system.md +23 -0
  28. kolega_code-0.3.2/kolega_code/agent/prompt_templates/auxiliary/terminal/safety.system.md +23 -0
  29. kolega_code-0.3.2/kolega_code/agent/prompt_templates/auxiliary/tools/think_hard.system.md +13 -0
  30. kolega_code-0.3.2/kolega_code/agent/prompt_templates/extensions/cli/planning_questions.md +2 -0
  31. kolega_code-0.3.2/kolega_code/agent/prompt_templates/extensions/cli/shared_task_list.md +7 -0
  32. kolega_code-0.3.2/kolega_code/agent/prompt_templates/extensions/skills/catalog.md.j2 +7 -0
  33. kolega_code-0.3.0/kolega_code/agent/prompt_templates/agents/coder_cli_mode.j2 → kolega_code-0.3.2/kolega_code/agent/prompt_templates/system/agents/coder_cli.md.j2 +5 -5
  34. kolega_code-0.3.2/kolega_code/agent/prompt_templates/system/agents/planning.md.j2 +39 -0
  35. kolega_code-0.3.0/kolega_code/agent/prompt_templates/common/kolega_md_instructions.md → kolega_code-0.3.2/kolega_code/agent/prompt_templates/system/includes/agents_md_instructions.md +3 -3
  36. kolega_code-0.3.2/kolega_code/agent/prompt_templates/user_tasks/cli/implement_plan.md.j2 +3 -0
  37. kolega_code-0.3.2/kolega_code/agent/prompt_templates/user_tasks/cli/init_agents.md.j2 +144 -0
  38. kolega_code-0.3.2/kolega_code/agent/prompts.py +92 -0
  39. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tests/test_agent_tools_inventory.py +2 -2
  40. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tests/test_coder_prompt_extensions.py +2 -2
  41. kolega_code-0.3.2/kolega_code/agent/tests/test_permissions.py +138 -0
  42. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tests/test_prompt_provider.py +10 -10
  43. kolega_code-0.3.2/kolega_code/agent/tests/test_prompts.py +71 -0
  44. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tool_backend/agent_tool.py +2 -0
  45. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/cli/app.py +330 -23
  46. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/cli/main.py +96 -0
  47. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/cli/messages.py +12 -0
  48. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/cli/session_store.py +3 -0
  49. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/cli/skills.py +2 -9
  50. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/cli/slash_commands.py +3 -0
  51. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/cli/tests/test_app.py +333 -10
  52. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/cli/tests/test_main.py +10 -0
  53. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/cli/tests/test_session_store.py +5 -0
  54. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/cli/tests/test_slash_commands.py +6 -2
  55. kolega_code-0.3.2/kolega_code/permissions.py +378 -0
  56. {kolega_code-0.3.0 → kolega_code-0.3.2}/pyproject.toml +1 -2
  57. {kolega_code-0.3.0 → kolega_code-0.3.2}/uv.lock +2 -583
  58. kolega_code-0.3.0/kolega_code/agent/prompts.py +0 -154
  59. {kolega_code-0.3.0 → kolega_code-0.3.2}/.env.example +0 -0
  60. {kolega_code-0.3.0 → kolega_code-0.3.2}/.github/workflows/ci.yml +0 -0
  61. {kolega_code-0.3.0 → kolega_code-0.3.2}/CONTRIBUTING.md +0 -0
  62. {kolega_code-0.3.0 → kolega_code-0.3.2}/LICENSE +0 -0
  63. {kolega_code-0.3.0 → kolega_code-0.3.2}/README.md +0 -0
  64. {kolega_code-0.3.0 → kolega_code-0.3.2}/SECURITY.md +0 -0
  65. {kolega_code-0.3.0 → kolega_code-0.3.2}/conftest.py +0 -0
  66. {kolega_code-0.3.0 → kolega_code-0.3.2}/docs/.gitignore +0 -0
  67. {kolega_code-0.3.0 → kolega_code-0.3.2}/docs/README.md +0 -0
  68. {kolega_code-0.3.0 → kolega_code-0.3.2}/docs/astro.config.mjs +0 -0
  69. {kolega_code-0.3.0 → kolega_code-0.3.2}/docs/public/favicon.svg +0 -0
  70. {kolega_code-0.3.0 → kolega_code-0.3.2}/docs/src/assets/kolega-dark.svg +0 -0
  71. {kolega_code-0.3.0 → kolega_code-0.3.2}/docs/src/assets/kolega-light.svg +0 -0
  72. {kolega_code-0.3.0 → kolega_code-0.3.2}/docs/src/content/docs/cli/doctor.md +0 -0
  73. {kolega_code-0.3.0 → kolega_code-0.3.2}/docs/src/content/docs/cli/sessions.md +0 -0
  74. {kolega_code-0.3.0 → kolega_code-0.3.2}/docs/src/content/docs/concepts/agents.md +0 -0
  75. {kolega_code-0.3.0 → kolega_code-0.3.2}/docs/src/content/docs/concepts/how-it-works.md +0 -0
  76. {kolega_code-0.3.0 → kolega_code-0.3.2}/docs/src/content/docs/configuration/environment-variables.md +0 -0
  77. {kolega_code-0.3.0 → kolega_code-0.3.2}/docs/src/content/docs/configuration/providers-and-models.mdx +0 -0
  78. {kolega_code-0.3.0 → kolega_code-0.3.2}/docs/src/content/docs/configuration/settings-and-api-keys.mdx +0 -0
  79. {kolega_code-0.3.0 → kolega_code-0.3.2}/docs/src/content/docs/getting-started/installation.mdx +0 -0
  80. {kolega_code-0.3.0 → kolega_code-0.3.2}/docs/src/content/docs/getting-started/introduction.md +0 -0
  81. {kolega_code-0.3.0 → kolega_code-0.3.2}/docs/src/content/docs/getting-started/quick-start.mdx +0 -0
  82. {kolega_code-0.3.0 → kolega_code-0.3.2}/docs/src/content/docs/index.mdx +0 -0
  83. {kolega_code-0.3.0 → kolega_code-0.3.2}/docs/src/content/docs/skills.mdx +0 -0
  84. {kolega_code-0.3.0 → kolega_code-0.3.2}/docs/src/content/docs/tui/composer.md +0 -0
  85. {kolega_code-0.3.0 → kolega_code-0.3.2}/docs/src/content/docs/tui/sessions-and-resume.md +0 -0
  86. {kolega_code-0.3.0 → kolega_code-0.3.2}/docs/src/content.config.ts +0 -0
  87. {kolega_code-0.3.0 → kolega_code-0.3.2}/docs/src/styles/brand.css +0 -0
  88. {kolega_code-0.3.0 → kolega_code-0.3.2}/docs/tsconfig.json +0 -0
  89. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/common.py +0 -0
  90. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/conversation.py +0 -0
  91. /kolega_code-0.3.0/kolega_code/agent/prompt_templates/agents/browser.j2 → /kolega_code-0.3.2/kolega_code/agent/prompt_templates/system/agents/browser.md.j2 +0 -0
  92. /kolega_code-0.3.0/kolega_code/agent/prompt_templates/agents/general.j2 → /kolega_code-0.3.2/kolega_code/agent/prompt_templates/system/agents/general.md.j2 +0 -0
  93. /kolega_code-0.3.0/kolega_code/agent/prompt_templates/agents/investigation.j2 → /kolega_code-0.3.2/kolega_code/agent/prompt_templates/system/agents/investigation.md.j2 +0 -0
  94. {kolega_code-0.3.0/kolega_code/agent/prompt_templates → kolega_code-0.3.2/kolega_code/agent/prompt_templates/system/includes}/environment_variables/workspace_env_vars.md +0 -0
  95. {kolega_code-0.3.0/kolega_code/agent/prompt_templates/common → kolega_code-0.3.2/kolega_code/agent/prompt_templates/system/includes}/frontend_guidance.md +0 -0
  96. /kolega_code-0.3.0/kolega_code/agent/prompt_templates/template_guidance/expo-template.md → /kolega_code-0.3.2/kolega_code/agent/prompt_templates/system/includes/starter_templates/expo.md +0 -0
  97. /kolega_code-0.3.0/kolega_code/agent/prompt_templates/template_guidance/html-website-template.md → /kolega_code-0.3.2/kolega_code/agent/prompt_templates/system/includes/starter_templates/html_website.md +0 -0
  98. /kolega_code-0.3.0/kolega_code/agent/prompt_templates/template_guidance/mern-stack-template.md → /kolega_code-0.3.2/kolega_code/agent/prompt_templates/system/includes/starter_templates/mern_stack.md +0 -0
  99. /kolega_code-0.3.0/kolega_code/agent/prompt_templates/template_guidance/react-vite-shadcdn-template.md → /kolega_code-0.3.2/kolega_code/agent/prompt_templates/system/includes/starter_templates/react_vite_shadcdn.md +0 -0
  100. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tests/__init__.py +0 -0
  101. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tests/llm/__init__.py +0 -0
  102. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tests/llm/test_anthropic_token_counting.py +0 -0
  103. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tests/llm/test_billing_openai_cache.py +0 -0
  104. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tests/llm/test_client.py +0 -0
  105. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tests/llm/test_dashscope_mapping.py +0 -0
  106. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tests/llm/test_error_boundary.py +0 -0
  107. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tests/llm/test_exceptions.py +0 -0
  108. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tests/llm/test_google_thought_signature.py +0 -0
  109. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tests/llm/test_google_tool_signature_live.py +0 -0
  110. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tests/llm/test_instrumented_client.py +0 -0
  111. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tests/llm/test_instrumented_client_integration.py +0 -0
  112. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tests/llm/test_langfuse_normalization.py +0 -0
  113. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tests/llm/test_live_providers.py +0 -0
  114. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tests/llm/test_model_specs.py +0 -0
  115. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tests/llm/test_openai_cached_tokens.py +0 -0
  116. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tests/llm/test_openai_cached_tokens_stream.py +0 -0
  117. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tests/llm/test_openai_message_conversion.py +0 -0
  118. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tests/llm/test_openai_token_counting.py +0 -0
  119. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tests/llm/test_thinking_effort.py +0 -0
  120. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tests/llm/test_tool_execution_ids.py +0 -0
  121. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tests/services/__init__.py +0 -0
  122. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tests/services/test_browser.py +0 -0
  123. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tests/services/test_browser_parity.py +0 -0
  124. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tests/services/test_file_system.py +0 -0
  125. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tests/services/test_sandbox_terminal_input.py +0 -0
  126. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tests/services/test_terminal.py +0 -0
  127. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tests/services/test_terminal_command_tracking.py +0 -0
  128. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tests/services/test_terminal_state_serializer.py +0 -0
  129. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tests/test_base_agent.py +0 -0
  130. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tests/test_coder_attachments.py +0 -0
  131. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tests/test_commands.py +0 -0
  132. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tests/test_duplicate_tool_results.py +0 -0
  133. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tests/test_empty_message_handling.py +0 -0
  134. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tests/test_general_agent.py +0 -0
  135. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tests/test_html.py +0 -0
  136. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tests/test_parallel_tool_calls.py +0 -0
  137. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tests/test_planning_agent.py +0 -0
  138. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tests/test_tool_registry.py +0 -0
  139. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tests/test_tools.py +0 -0
  140. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tests/tool_backend/__init__.py +0 -0
  141. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tests/tool_backend/test_agent_tool.py +0 -0
  142. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tests/tool_backend/test_base_tool.py +0 -0
  143. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tests/tool_backend/test_browser_tool.py +0 -0
  144. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tests/tool_backend/test_build_tool.py +0 -0
  145. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tests/tool_backend/test_create_file_tool.py +0 -0
  146. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tests/tool_backend/test_glob_tool.py +0 -0
  147. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tests/tool_backend/test_glob_tool_sandbox_parity.py +0 -0
  148. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tests/tool_backend/test_list_directory_tool.py +0 -0
  149. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tests/tool_backend/test_read_file_tool.py +0 -0
  150. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tests/tool_backend/test_replace_entire_file_tool.py +0 -0
  151. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tests/tool_backend/test_replace_lines_tool.py +0 -0
  152. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tests/tool_backend/test_search_and_replace_tool.py +0 -0
  153. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tests/tool_backend/test_search_codebase_tool.py +0 -0
  154. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tests/tool_backend/test_terminal_tool.py +0 -0
  155. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tests/tool_backend/test_think_hard_integration.py +0 -0
  156. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tests/tool_backend/test_think_hard_streaming.py +0 -0
  157. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tests/tool_backend/test_web_fetch_tool.py +0 -0
  158. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tool_backend/apply_patch_tool.py +0 -0
  159. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tool_backend/base_tool.py +0 -0
  160. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tool_backend/browser_tool.py +0 -0
  161. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tool_backend/build_tool.py +0 -0
  162. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tool_backend/create_file_tool.py +0 -0
  163. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tool_backend/glob_tool.py +0 -0
  164. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tool_backend/list_directory_tool.py +0 -0
  165. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tool_backend/memory_tool.py +0 -0
  166. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tool_backend/read_file_tool.py +0 -0
  167. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tool_backend/replace_entire_file_tool.py +0 -0
  168. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tool_backend/replace_lines_tool.py +0 -0
  169. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tool_backend/search_and_replace_tool.py +0 -0
  170. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tool_backend/search_codebase_tool.py +0 -0
  171. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tool_backend/streaming_tool.py +0 -0
  172. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tool_backend/terminal_tool.py +0 -0
  173. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tool_backend/think_hard_tool.py +0 -0
  174. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tool_backend/web_fetch_tool.py +0 -0
  175. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/tools.py +0 -0
  176. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/agent/utils/commands.py +0 -0
  177. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/cli/__init__.py +0 -0
  178. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/cli/config.py +0 -0
  179. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/cli/connection.py +0 -0
  180. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/cli/file_index.py +0 -0
  181. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/cli/mentions.py +0 -0
  182. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/cli/provider_registry.py +0 -0
  183. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/cli/settings.py +0 -0
  184. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/cli/tests/__init__.py +0 -0
  185. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/cli/tests/test_cli_config.py +0 -0
  186. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/cli/tests/test_connection.py +0 -0
  187. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/cli/tests/test_file_index.py +0 -0
  188. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/cli/tests/test_mentions.py +0 -0
  189. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/cli/tests/test_settings.py +0 -0
  190. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/cli/tests/test_skills.py +0 -0
  191. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/cli/tests/test_updater.py +0 -0
  192. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/cli/theme.py +0 -0
  193. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/cli/updater.py +0 -0
  194. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/config.py +0 -0
  195. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/events.py +0 -0
  196. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/llm/client.py +0 -0
  197. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/llm/exceptions.py +0 -0
  198. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/llm/instrumented_client.py +0 -0
  199. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/llm/models.py +0 -0
  200. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/llm/providers/__init__.py +0 -0
  201. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/llm/providers/anthropic.py +0 -0
  202. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/llm/providers/base.py +0 -0
  203. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/llm/providers/google.py +0 -0
  204. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/llm/providers/models.py +0 -0
  205. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/llm/providers/openai.py +0 -0
  206. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/llm/ratelimit.py +0 -0
  207. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/llm/specs.py +0 -0
  208. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/llm/tool_execution_ids.py +0 -0
  209. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/models/__init__.py +0 -0
  210. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/models/sandbox_terminal_state.py +0 -0
  211. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/runtime.py +0 -0
  212. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/sandbox/README.md +0 -0
  213. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/sandbox/__init__.py +0 -0
  214. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/sandbox/async_filesystem.py +0 -0
  215. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/sandbox/base.py +0 -0
  216. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/sandbox/browser.py +0 -0
  217. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/sandbox/event_loop.py +0 -0
  218. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/sandbox/filesystem.py +0 -0
  219. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/sandbox/local.py +0 -0
  220. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/sandbox/serializer.py +0 -0
  221. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/sandbox/terminal.py +0 -0
  222. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/sandbox/utils.py +0 -0
  223. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/services/base.py +0 -0
  224. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/services/browser.py +0 -0
  225. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/services/file_system.py +0 -0
  226. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/services/html.py +0 -0
  227. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/services/terminal.py +0 -0
  228. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/tools/__init__.py +0 -0
  229. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/tools/core.py +0 -0
  230. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/tools/definitions.py +0 -0
  231. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/tools/registry.py +0 -0
  232. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/tools/tests/__init__.py +0 -0
  233. {kolega_code-0.3.0 → kolega_code-0.3.2}/kolega_code/tools/tests/test_definitions.py +0 -0
  234. {kolega_code-0.3.0 → kolega_code-0.3.2}/run_tests.sh +0 -0
  235. {kolega_code-0.3.0 → kolega_code-0.3.2}/scripts/install-kolega-code.sh +0 -0
@@ -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"
@@ -7,6 +7,7 @@ __pycache__/
7
7
  .env
8
8
  .env.*
9
9
  !.env.example
10
+ .kolega/permissions.json
10
11
  dist/
11
12
  build/
12
13
  *.egg-info/
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: kolega-code
3
- Version: 0.3.0
3
+ Version: 0.3.2
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,7 +43,6 @@ 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
@@ -1,9 +1,65 @@
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
+ Release version bumps must happen in a pull request. Do not tag an unmerged
10
+ release branch.
11
+
12
+ 1. Create a release branch from the latest `main`:
13
+
14
+ ```bash
15
+ git checkout main
16
+ git pull origin main
17
+ git checkout -b chore/release-v0.3.2
18
+ ```
19
+
20
+ 2. Update `pyproject.toml`, `uv.lock`, and package `__version__` values to the
21
+ release version.
22
+
23
+ 3. Run the fast test suite:
24
+
25
+ ```bash
26
+ uv run pytest -ra --durations=50 --import-mode=importlib -m "not slow"
27
+ ```
28
+
29
+ 4. Commit the release bump and open a pull request against `main`:
30
+
31
+ ```bash
32
+ git commit -m "chore: release v0.3.2"
33
+ git push -u origin chore/release-v0.3.2
34
+ ```
35
+
36
+ The PR must be reviewed, pass CI, and be merged before tagging.
37
+
38
+ 5. After the PR is merged, update local `main`, then create and push a matching
39
+ tag from the merge commit:
40
+
41
+ ```bash
42
+ git checkout main
43
+ git pull origin main
44
+ git tag v0.3.2
45
+ git push origin v0.3.2
46
+ ```
47
+
48
+ 6. Confirm the `Release` GitHub Actions workflow completes. It builds and tests
49
+ the package, publishes to PyPI, then creates the GitHub Release.
50
+
51
+ 7. Verify the release:
52
+
53
+ ```bash
54
+ uv tool install --force kolega-code
55
+ kolega-code --version
56
+ gh release view v0.3.2 --repo kolega-ai/kolega-code
57
+ ```
58
+
59
+ The GitHub Release uses PyPI as the canonical package distribution and keeps
60
+ GitHub's automatic source archives as the only release assets.
61
+
62
+ ## First PyPI release setup
7
63
 
8
64
  The first release can be published from the existing maintainer PyPI user
9
65
  account, then transferred to the Kolega PyPI organization after PyPI approves
@@ -24,24 +80,6 @@ the organization request.
24
80
  Require approval from trusted maintainers before deployment. The release
25
81
  workflow will pause before publishing to PyPI.
26
82
 
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.3.0
33
- git push origin v0.3.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
83
  ## Installer handoff
46
84
 
47
85
  The canonical installer source is tracked at: