kolega-code 0.26.3__tar.gz → 0.26.4__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 (359) hide show
  1. {kolega_code-0.26.3 → kolega_code-0.26.4}/CHANGELOG.md +10 -0
  2. {kolega_code-0.26.3 → kolega_code-0.26.4}/PKG-INFO +1 -1
  3. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/__init__.py +1 -1
  4. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/__init__.py +1 -1
  5. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/baseagent.py +1 -0
  6. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/context.py +2 -0
  7. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/tool_backend/terminal_tool.py +1 -0
  8. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/tool_backend/think_hard_tool.py +2 -0
  9. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/tool_backend/web_fetch_tool.py +1 -0
  10. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/llm/client.py +24 -0
  11. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/llm/instrumented_client.py +4 -1
  12. kolega_code-0.26.4/kolega_code/llm/providers/deepseek_responses.py +66 -0
  13. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/llm/specs/catalog/deepseek.py +6 -1
  14. {kolega_code-0.26.3 → kolega_code-0.26.4}/pyproject.toml +1 -1
  15. {kolega_code-0.26.3 → kolega_code-0.26.4}/.gitignore +0 -0
  16. {kolega_code-0.26.3 → kolega_code-0.26.4}/CONTRIBUTING.md +0 -0
  17. {kolega_code-0.26.3 → kolega_code-0.26.4}/LICENSE +0 -0
  18. {kolega_code-0.26.3 → kolega_code-0.26.4}/MIGRATION.md +0 -0
  19. {kolega_code-0.26.3 → kolega_code-0.26.4}/README.md +0 -0
  20. {kolega_code-0.26.3 → kolega_code-0.26.4}/RELEASING.md +0 -0
  21. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/_bundled_skills/LICENSE +0 -0
  22. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/_bundled_skills/manifest.json +0 -0
  23. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/_bundled_skills/skills/deep-research/SKILL.md +0 -0
  24. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/_bundled_skills/skills/deep-research/references/evidence-and-reporting.md +0 -0
  25. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/_bundled_skills/skills/deep-research/references/gigacode-workflow.md +0 -0
  26. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/_bundled_skills/skills/deep-research/scripts/deep-research.workflow +0 -0
  27. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/_bundled_skills/skills/deep-research/scripts/materialize_report.py +0 -0
  28. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/_bundled_skills/skills/docx/LICENSE +0 -0
  29. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/_bundled_skills/skills/docx/SKILL.md +0 -0
  30. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/_bundled_skills/skills/docx/references/examples.md +0 -0
  31. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/_bundled_skills/skills/docx/references/limitations.md +0 -0
  32. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/_bundled_skills/skills/docx/references/operations.md +0 -0
  33. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/_bundled_skills/skills/docx/references/quality.md +0 -0
  34. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/_bundled_skills/skills/docx/requirements.txt +0 -0
  35. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/_bundled_skills/skills/docx/scripts/docx_tool.py +0 -0
  36. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/_bundled_skills/skills/docx/scripts/smoke_test.py +0 -0
  37. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/_bundled_skills/skills/humanizer/LICENSE +0 -0
  38. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/_bundled_skills/skills/humanizer/SKILL.md +0 -0
  39. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/_bundled_skills/skills/pdf/LICENSE +0 -0
  40. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/_bundled_skills/skills/pdf/SKILL.md +0 -0
  41. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/_bundled_skills/skills/pdf/references/examples.md +0 -0
  42. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/_bundled_skills/skills/pdf/references/limitations.md +0 -0
  43. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/_bundled_skills/skills/pdf/references/ocr.md +0 -0
  44. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/_bundled_skills/skills/pdf/references/operations.md +0 -0
  45. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/_bundled_skills/skills/pdf/references/quality.md +0 -0
  46. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/_bundled_skills/skills/pdf/references/redaction.md +0 -0
  47. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/_bundled_skills/skills/pdf/requirements-ocr-paddle.txt +0 -0
  48. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/_bundled_skills/skills/pdf/requirements-ocr-surya.txt +0 -0
  49. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/_bundled_skills/skills/pdf/requirements.txt +0 -0
  50. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/_bundled_skills/skills/pdf/scripts/pdf_tool.py +0 -0
  51. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/_bundled_skills/skills/pdf/scripts/smoke_test.py +0 -0
  52. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/_bundled_skills/skills/pptx/LICENSE +0 -0
  53. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/_bundled_skills/skills/pptx/SKILL.md +0 -0
  54. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/_bundled_skills/skills/pptx/references/examples.md +0 -0
  55. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/_bundled_skills/skills/pptx/references/limitations.md +0 -0
  56. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/_bundled_skills/skills/pptx/references/operations.md +0 -0
  57. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/_bundled_skills/skills/pptx/requirements.txt +0 -0
  58. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/_bundled_skills/skills/pptx/scripts/pptx_tool.py +0 -0
  59. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/_bundled_skills/skills/pptx/scripts/smoke_test.py +0 -0
  60. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/_bundled_skills/skills/review/SKILL.md +0 -0
  61. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/_bundled_skills/skills/review/references/github-publishing.md +0 -0
  62. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/_bundled_skills/skills/skill-authoring/SKILL.md +0 -0
  63. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/_bundled_skills/skills/skill-authoring/references/review-checklist.md +0 -0
  64. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/_bundled_skills/skills/xlsx/LICENSE +0 -0
  65. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/_bundled_skills/skills/xlsx/SKILL.md +0 -0
  66. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/_bundled_skills/skills/xlsx/references/examples.md +0 -0
  67. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/_bundled_skills/skills/xlsx/references/limitations.md +0 -0
  68. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/_bundled_skills/skills/xlsx/references/operations.md +0 -0
  69. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/_bundled_skills/skills/xlsx/references/quality.md +0 -0
  70. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/_bundled_skills/skills/xlsx/requirements.txt +0 -0
  71. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/_bundled_skills/skills/xlsx/scripts/smoke_test.py +0 -0
  72. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/_bundled_skills/skills/xlsx/scripts/xlsx_tool.py +0 -0
  73. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/browseragent.py +0 -0
  74. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/coder.py +0 -0
  75. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/common.py +0 -0
  76. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/compression.py +0 -0
  77. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/conversation.py +0 -0
  78. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/custom_agents.py +0 -0
  79. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/edit_protocols.py +0 -0
  80. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/errors.py +0 -0
  81. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/eval/__init__.py +0 -0
  82. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/eval/bridge.py +0 -0
  83. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/eval/bundle-requirements.in +0 -0
  84. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/eval/bundle-requirements.txt +0 -0
  85. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/eval/env.py +0 -0
  86. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/eval/js_kernel.py +0 -0
  87. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/eval/kernel.py +0 -0
  88. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/eval/prelude.js +0 -0
  89. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/eval/prelude.py +0 -0
  90. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/eval/protocol.py +0 -0
  91. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/eval/py_kernel.py +0 -0
  92. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/eval/runner.js +0 -0
  93. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/eval/runner.py +0 -0
  94. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/generalagent.py +0 -0
  95. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/goal.py +0 -0
  96. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/investigationagent.py +0 -0
  97. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/model_routing.py +0 -0
  98. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/orchestration/__init__.py +0 -0
  99. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/orchestration/accounting.py +0 -0
  100. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/orchestration/budget.py +0 -0
  101. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/orchestration/context.py +0 -0
  102. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/orchestration/errors.py +0 -0
  103. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/orchestration/executor.py +0 -0
  104. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/orchestration/guide.py +0 -0
  105. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/orchestration/journal.py +0 -0
  106. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/orchestration/runtime.py +0 -0
  107. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/orchestration/types.py +0 -0
  108. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/planningagent.py +0 -0
  109. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/prompt_dump.py +0 -0
  110. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/prompt_overrides.py +0 -0
  111. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/prompt_provider.py +0 -0
  112. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/prompt_templates/auxiliary/compression/summary.system.md +0 -0
  113. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/prompt_templates/auxiliary/compression/summary.user.md.j2 +0 -0
  114. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/prompt_templates/auxiliary/terminal/output_summary.system.md +0 -0
  115. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/prompt_templates/auxiliary/terminal/safety.system.md +0 -0
  116. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/prompt_templates/auxiliary/tools/think_hard.system.md +0 -0
  117. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/prompt_templates/extensions/cli/build_questions.md +0 -0
  118. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/prompt_templates/extensions/cli/current_plan_artifact.md.j2 +0 -0
  119. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/prompt_templates/extensions/cli/planning_questions.md +0 -0
  120. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/prompt_templates/extensions/cli/scratchpad.md.j2 +0 -0
  121. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/prompt_templates/extensions/cli/shared_task_list.md +0 -0
  122. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/prompt_templates/extensions/cli/shared_task_list_readonly.md +0 -0
  123. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/prompt_templates/extensions/cli/worktree_control.md.j2 +0 -0
  124. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/prompt_templates/extensions/skills/catalog.md.j2 +0 -0
  125. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/prompt_templates/system/agents/browser.md.j2 +0 -0
  126. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/prompt_templates/system/agents/coder_cli.md.j2 +0 -0
  127. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/prompt_templates/system/agents/general.md.j2 +0 -0
  128. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/prompt_templates/system/agents/investigation.md.j2 +0 -0
  129. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/prompt_templates/system/agents/planning.md.j2 +0 -0
  130. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/prompt_templates/system/includes/agents_md_instructions.md +0 -0
  131. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/prompt_templates/system/includes/context_updates.md +0 -0
  132. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/prompt_templates/system/includes/environment_variables/workspace_env_vars.md +0 -0
  133. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/prompt_templates/system/includes/frontend_guidance.md +0 -0
  134. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/prompt_templates/system/includes/starter_templates/expo.md +0 -0
  135. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/prompt_templates/system/includes/starter_templates/html_website.md +0 -0
  136. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/prompt_templates/system/includes/starter_templates/mern_stack.md +0 -0
  137. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/prompt_templates/system/includes/starter_templates/react_vite_shadcdn.md +0 -0
  138. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/prompt_templates/user_tasks/cli/implement_plan.md.j2 +0 -0
  139. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/prompt_templates/user_tasks/cli/init_agents.md.j2 +0 -0
  140. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/prompts.py +0 -0
  141. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/tool_backend/agent_tool.py +0 -0
  142. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/tool_backend/base_tool.py +0 -0
  143. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/tool_backend/browser_tool.py +0 -0
  144. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/tool_backend/build_tool.py +0 -0
  145. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/tool_backend/codex_patch.py +0 -0
  146. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/tool_backend/edit_preview.py +0 -0
  147. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/tool_backend/edit_tool.py +0 -0
  148. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/tool_backend/eval_tool.py +0 -0
  149. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/tool_backend/glob_tool.py +0 -0
  150. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/tool_backend/hashline_v2.py +0 -0
  151. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/tool_backend/list_directory_tool.py +0 -0
  152. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/tool_backend/lsp_tool.py +0 -0
  153. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/tool_backend/memory_tool.py +0 -0
  154. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/tool_backend/read_file_tool.py +0 -0
  155. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/tool_backend/read_image_tool.py +0 -0
  156. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/tool_backend/search_backends/__init__.py +0 -0
  157. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/tool_backend/search_backends/base.py +0 -0
  158. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/tool_backend/search_backends/duckduckgo.py +0 -0
  159. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/tool_backend/search_backends/errors.py +0 -0
  160. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/tool_backend/search_backends/firecrawl.py +0 -0
  161. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/tool_backend/search_backends/models.py +0 -0
  162. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/tool_backend/search_backends/searxng.py +0 -0
  163. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/tool_backend/search_backends/tavily.py +0 -0
  164. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/tool_backend/search_codebase_tool.py +0 -0
  165. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/tool_backend/snapshot_tool.py +0 -0
  166. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/tool_backend/streaming_tool.py +0 -0
  167. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/tool_backend/web_fetch/__init__.py +0 -0
  168. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/tool_backend/web_fetch/answering.py +0 -0
  169. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/tool_backend/web_fetch/documents.py +0 -0
  170. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/tool_backend/web_fetch/extractors.py +0 -0
  171. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/tool_backend/web_fetch/pipeline.py +0 -0
  172. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/tool_backend/web_fetch/retrieval.py +0 -0
  173. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/tool_backend/web_search_tool.py +0 -0
  174. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/tool_backend/workflow_tool.py +0 -0
  175. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/tools.py +0 -0
  176. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/utils/commands.py +0 -0
  177. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/agent/volatile_context.py +0 -0
  178. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/auth/__init__.py +0 -0
  179. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/auth/_jwt.py +0 -0
  180. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/auth/chatgpt_oauth.py +0 -0
  181. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/auth/constants.py +0 -0
  182. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/auth/tokens.py +0 -0
  183. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/browser_extension/__init__.py +0 -0
  184. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/browser_extension/framing.py +0 -0
  185. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/browser_extension/installer.py +0 -0
  186. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/browser_extension/manager.py +0 -0
  187. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/browser_extension/multiplex.py +0 -0
  188. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/browser_extension/native_host.py +0 -0
  189. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/browser_extension/protocol.py +0 -0
  190. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/browser_extension/registry.py +0 -0
  191. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/browser_extension/runtime.py +0 -0
  192. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/cli/__init__.py +0 -0
  193. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/cli/app.py +0 -0
  194. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/cli/browser_backend.py +0 -0
  195. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/cli/clipboard_image.py +0 -0
  196. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/cli/config.py +0 -0
  197. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/cli/connection.py +0 -0
  198. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/cli/cron.py +0 -0
  199. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/cli/diagnostics.py +0 -0
  200. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/cli/file_index.py +0 -0
  201. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/cli/goal.py +0 -0
  202. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/cli/loop.py +0 -0
  203. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/cli/main.py +0 -0
  204. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/cli/mentions.py +0 -0
  205. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/cli/messages.py +0 -0
  206. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/cli/model_catalog.py +0 -0
  207. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/cli/model_connection.py +0 -0
  208. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/cli/plan_artifacts.py +0 -0
  209. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/cli/provider_registry.py +0 -0
  210. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/cli/session_event_store.py +0 -0
  211. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/cli/session_journal.py +0 -0
  212. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/cli/session_store.py +0 -0
  213. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/cli/settings.py +0 -0
  214. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/cli/skills.py +0 -0
  215. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/cli/slash_commands.py +0 -0
  216. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/cli/theme.py +0 -0
  217. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/cli/tui/__init__.py +0 -0
  218. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/cli/tui/agent_runtime.py +0 -0
  219. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/cli/tui/app_base.py +0 -0
  220. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/cli/tui/changes_screen.py +0 -0
  221. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/cli/tui/command_handlers.py +0 -0
  222. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/cli/tui/constants.py +0 -0
  223. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/cli/tui/custom_model.py +0 -0
  224. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/cli/tui/loop_runtime.py +0 -0
  225. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/cli/tui/memory_screen.py +0 -0
  226. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/cli/tui/onboarding_screen.py +0 -0
  227. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/cli/tui/prompt_flows.py +0 -0
  228. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/cli/tui/session_diff.py +0 -0
  229. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/cli/tui/settings_panel.py +0 -0
  230. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/cli/tui/settings_screen.py +0 -0
  231. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/cli/tui/state.py +0 -0
  232. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/cli/tui/status_dashboard.py +0 -0
  233. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/cli/tui/styles.tcss +0 -0
  234. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/cli/tui/sub_agent_screen.py +0 -0
  235. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/cli/tui/terminal_display.py +0 -0
  236. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/cli/tui/transcript.py +0 -0
  237. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/cli/tui/widgets.py +0 -0
  238. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/cli/updater.py +0 -0
  239. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/config.py +0 -0
  240. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/events.py +0 -0
  241. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/git_env.py +0 -0
  242. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/hooks/__init__.py +0 -0
  243. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/hooks/backends.py +0 -0
  244. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/hooks/config.py +0 -0
  245. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/hooks/dispatcher.py +0 -0
  246. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/hooks/events.py +0 -0
  247. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/hooks/matcher.py +0 -0
  248. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/hooks/outcome.py +0 -0
  249. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/llm/exceptions.py +0 -0
  250. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/llm/models.py +0 -0
  251. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/llm/providers/__init__.py +0 -0
  252. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/llm/providers/anthropic.py +0 -0
  253. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/llm/providers/base.py +0 -0
  254. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/llm/providers/chatgpt_oauth.py +0 -0
  255. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/llm/providers/google.py +0 -0
  256. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/llm/providers/models.py +0 -0
  257. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/llm/providers/openai.py +0 -0
  258. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/llm/providers/openai_responses.py +0 -0
  259. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/llm/providers/responses_common.py +0 -0
  260. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/llm/ratelimit.py +0 -0
  261. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/llm/specs/__init__.py +0 -0
  262. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/llm/specs/accessors.py +0 -0
  263. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/llm/specs/catalog/__init__.py +0 -0
  264. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/llm/specs/catalog/anthropic.py +0 -0
  265. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/llm/specs/catalog/dashscope.py +0 -0
  266. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/llm/specs/catalog/fireworks.py +0 -0
  267. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/llm/specs/catalog/google.py +0 -0
  268. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/llm/specs/catalog/kimi_coding.py +0 -0
  269. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/llm/specs/catalog/moonshot.py +0 -0
  270. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/llm/specs/catalog/ollama_cloud.py +0 -0
  271. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/llm/specs/catalog/openai.py +0 -0
  272. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/llm/specs/catalog/openai_chatgpt.py +0 -0
  273. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/llm/specs/catalog/openrouter.py +0 -0
  274. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/llm/specs/catalog/together.py +0 -0
  275. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/llm/specs/catalog/xai.py +0 -0
  276. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/llm/specs/catalog/zai.py +0 -0
  277. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/llm/specs/openrouter_catalog.py +0 -0
  278. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/llm/specs/thinking.py +0 -0
  279. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/llm/specs/types.py +0 -0
  280. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/llm/timeouts.py +0 -0
  281. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/llm/tool_execution_ids.py +0 -0
  282. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/local_state.py +0 -0
  283. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/mcp/__init__.py +0 -0
  284. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/mcp/config.py +0 -0
  285. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/mcp/oauth.py +0 -0
  286. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/mcp/service.py +0 -0
  287. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/mcp/state.py +0 -0
  288. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/mcp/tools.py +0 -0
  289. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/mcp/transport.py +0 -0
  290. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/memory/__init__.py +0 -0
  291. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/memory/identity.py +0 -0
  292. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/memory/manager.py +0 -0
  293. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/memory/manifest.py +0 -0
  294. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/memory/markdown.py +0 -0
  295. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/memory/models.py +0 -0
  296. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/memory/protocol.py +0 -0
  297. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/memory/registry.py +0 -0
  298. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/models/__init__.py +0 -0
  299. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/models/sandbox_terminal_state.py +0 -0
  300. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/permissions.py +0 -0
  301. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/runtime.py +0 -0
  302. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/sandbox/README.md +0 -0
  303. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/sandbox/__init__.py +0 -0
  304. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/sandbox/async_filesystem.py +0 -0
  305. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/sandbox/base.py +0 -0
  306. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/sandbox/browser.py +0 -0
  307. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/sandbox/event_loop.py +0 -0
  308. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/sandbox/filesystem.py +0 -0
  309. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/sandbox/local.py +0 -0
  310. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/sandbox/serializer.py +0 -0
  311. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/sandbox/terminal.py +0 -0
  312. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/sandbox/utils.py +0 -0
  313. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/scratchpad.py +0 -0
  314. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/security/__init__.py +0 -0
  315. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/security/secrets.py +0 -0
  316. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/services/base.py +0 -0
  317. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/services/browser.py +0 -0
  318. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/services/file_system.py +0 -0
  319. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/services/html.py +0 -0
  320. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/services/lsp/__init__.py +0 -0
  321. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/services/lsp/client.py +0 -0
  322. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/services/lsp/config.py +0 -0
  323. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/services/lsp/detector.py +0 -0
  324. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/services/lsp/diagnostics.py +0 -0
  325. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/services/lsp/edits.py +0 -0
  326. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/services/lsp/manager.py +0 -0
  327. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/services/lsp/registry.py +0 -0
  328. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/services/lsp/registry.yaml +0 -0
  329. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/services/snapshots.py +0 -0
  330. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/services/terminal.py +0 -0
  331. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/services/terminal_buffer.py +0 -0
  332. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/services/workspace_scan.py +0 -0
  333. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/session/__init__.py +0 -0
  334. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/session/control.py +0 -0
  335. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/session/inmemory.py +0 -0
  336. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/session/projection.py +0 -0
  337. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/session/recording.py +0 -0
  338. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/session/runtime.py +0 -0
  339. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/session/store.py +0 -0
  340. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/testing/__init__.py +0 -0
  341. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/testing/store_conformance.py +0 -0
  342. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/tools/__init__.py +0 -0
  343. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/tools/core.py +0 -0
  344. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/tools/definitions.py +0 -0
  345. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/tools/registry.py +0 -0
  346. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/utils/__init__.py +0 -0
  347. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/utils/images.py +0 -0
  348. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/web/__init__.py +0 -0
  349. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/web/assets/fold.js +0 -0
  350. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/web/assets/player.css +0 -0
  351. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/web/assets/player.html +0 -0
  352. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/web/assets/player.js +0 -0
  353. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/web/bundle.py +0 -0
  354. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/web/hosting.py +0 -0
  355. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/web/redaction.py +0 -0
  356. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/web/server.py +0 -0
  357. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/web/singlefile.py +0 -0
  358. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/web/theme_css.py +0 -0
  359. {kolega_code-0.26.3 → kolega_code-0.26.4}/kolega_code/worktrees.py +0 -0
@@ -6,6 +6,16 @@ This project uses GitHub Releases for detailed generated release notes. This fil
6
6
 
7
7
  ## Unreleased
8
8
 
9
+ ## 0.26.4 - 2026-08-02
10
+
11
+ ### Changed
12
+
13
+ - `deepseek-v4-flash` now connects over DeepSeek's **Responses API**
14
+ (`https://api.deepseek.com`) for its native tool-calling format and graded
15
+ reasoning effort. Every other DeepSeek model (including `deepseek-v4-pro`)
16
+ continues to use the OpenAI-compatible Chat Completions endpoint. This is a
17
+ per-model routing decision; no configuration change is required.
18
+
9
19
  ## 0.26.3 - 2026-08-02
10
20
 
11
21
  ### Added
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: kolega-code
3
- Version: 0.26.3
3
+ Version: 0.26.4
4
4
  Summary: Multi-agent coding in the terminal
5
5
  Project-URL: Homepage, https://kolega-ai.github.io/kolega-code/
6
6
  Project-URL: Documentation, https://kolega-ai.github.io/kolega-code/
@@ -151,4 +151,4 @@ __all__ = [
151
151
  "parse_git_status_output",
152
152
  ]
153
153
 
154
- __version__ = "0.26.3"
154
+ __version__ = "0.26.4"
@@ -51,4 +51,4 @@ __all__ = [
51
51
  "ToolExtension",
52
52
  ]
53
53
 
54
- __version__ = "0.26.3"
54
+ __version__ = "0.26.4"
@@ -1399,6 +1399,7 @@ class BaseAgent(LogMixin):
1399
1399
  client = LLMClient(
1400
1400
  provider=model_config.provider.value,
1401
1401
  api_key=self.config.get_api_key(model_config.provider) or "",
1402
+ model=model_config.model,
1402
1403
  max_retries=model_config.rate_limits.max_retries,
1403
1404
  requests_per_minute=model_config.rate_limits.requests_per_minute,
1404
1405
  tokens_per_minute=model_config.rate_limits.tokens_per_minute,
@@ -109,6 +109,7 @@ class AgentContext:
109
109
  return InstrumentedLLMClient(
110
110
  provider=model_config.provider,
111
111
  api_key=self.config.get_api_key(model_config.provider) or "",
112
+ model=model_config.model,
112
113
  max_retries=model_config.rate_limits.max_retries,
113
114
  requests_per_minute=model_config.rate_limits.requests_per_minute,
114
115
  tokens_per_minute=model_config.rate_limits.tokens_per_minute,
@@ -126,6 +127,7 @@ class AgentContext:
126
127
  return LLMClient(
127
128
  provider=model_config.provider,
128
129
  api_key=self.config.get_api_key(model_config.provider) or "",
130
+ model=model_config.model,
129
131
  max_retries=model_config.rate_limits.max_retries,
130
132
  requests_per_minute=model_config.rate_limits.requests_per_minute,
131
133
  tokens_per_minute=model_config.rate_limits.tokens_per_minute,
@@ -76,6 +76,7 @@ class TerminalTool(BaseTool):
76
76
  client = LLMClient(
77
77
  provider=provider.value,
78
78
  api_key=api_key or "",
79
+ model=self.config.fast_config.model,
79
80
  max_retries=rate_limits.max_retries,
80
81
  requests_per_minute=rate_limits.requests_per_minute,
81
82
  tokens_per_minute=rate_limits.tokens_per_minute,
@@ -37,6 +37,7 @@ class ThinkHardTool(StreamingTool):
37
37
  client = InstrumentedLLMClient(
38
38
  provider=provider.value,
39
39
  api_key=api_key or "",
40
+ model=self.config.thinking_config.model,
40
41
  max_retries=rate_limits.max_retries,
41
42
  requests_per_minute=rate_limits.requests_per_minute,
42
43
  tokens_per_minute=rate_limits.tokens_per_minute,
@@ -54,6 +55,7 @@ class ThinkHardTool(StreamingTool):
54
55
  client = LLMClient(
55
56
  provider=provider.value,
56
57
  api_key=api_key or "",
58
+ model=self.config.thinking_config.model,
57
59
  max_retries=rate_limits.max_retries,
58
60
  requests_per_minute=rate_limits.requests_per_minute,
59
61
  tokens_per_minute=rate_limits.tokens_per_minute,
@@ -142,6 +142,7 @@ class WebFetchTool(StreamingTool):
142
142
  client_kwargs = {
143
143
  "provider": provider.value,
144
144
  "api_key": self.config.get_api_key(provider),
145
+ "model": self.config.fast_config.model,
145
146
  "max_retries": rate_limits.max_retries,
146
147
  "requests_per_minute": rate_limits.requests_per_minute,
147
148
  "tokens_per_minute": rate_limits.tokens_per_minute,
@@ -73,11 +73,18 @@ class LLMClient:
73
73
  requests_per_minute: Optional[int] = None,
74
74
  tokens_per_minute: Optional[int] = None,
75
75
  token_manager: Optional[Any] = None,
76
+ model: Optional[str] = None,
76
77
  ):
77
78
  self.provider_name = provider.lower()
78
79
  self._api_key = api_key # Store API key privately
79
80
  # Refreshing OAuth token manager, used only by the ChatGPT-subscription provider.
80
81
  self._token_manager = token_manager
82
+ # Routing hint only: nearly every model shares its provider's API surface, so
83
+ # the client is provider-scoped and the model id is passed per call. The one
84
+ # exception is deepseek-v4-flash (Responses API vs the deepseek Chat default),
85
+ # which must be known at construction to pick the right provider class. The
86
+ # per-call `model=` kwarg still governs the request body.
87
+ self._model = model
81
88
  self.provider = self._initialize_provider(
82
89
  provider,
83
90
  max_retries=max_retries,
@@ -163,6 +170,23 @@ class LLMClient:
163
170
  provider_name=chatgpt_constants.PROVIDER_KEY,
164
171
  )
165
172
 
173
+ # TEMPORARY single exception: deepseek-v4-flash speaks the Responses API
174
+ # (bare host, no /v1) while the rest of the deepseek catalog stays on Chat
175
+ # Completions. Special-cased here — like the ChatGPT provider above —
176
+ # because it needs a distinct base URL. Delete this branch once DeepSeek
177
+ # moves its catalog to Responses (then route "deepseek" wholesale).
178
+ if provider.lower() == "deepseek" and self._model == "deepseek-v4-flash":
179
+ from .providers.deepseek_responses import DeepSeekResponsesProvider
180
+
181
+ return DeepSeekResponsesProvider(
182
+ api_key=self._api_key,
183
+ max_retries=max_retries,
184
+ requests_per_minute=requests_per_minute,
185
+ tokens_per_minute=tokens_per_minute,
186
+ base_url="https://api.deepseek.com",
187
+ provider_name="deepseek",
188
+ )
189
+
166
190
  base_urls: Dict[str, str] = {
167
191
  "openai": "https://api.openai.com/v1/",
168
192
  "together": "https://api.together.xyz/v1",
@@ -80,8 +80,11 @@ class InstrumentedLLMClient(LLMClient):
80
80
  user_email: Optional[str] = None,
81
81
  usage_recorder: Optional[Any] = None,
82
82
  token_manager: Optional[Any] = None,
83
+ model: Optional[str] = None,
83
84
  ):
84
- super().__init__(provider, api_key, max_retries, requests_per_minute, tokens_per_minute, token_manager)
85
+ super().__init__(
86
+ provider, api_key, max_retries, requests_per_minute, tokens_per_minute, token_manager, model=model
87
+ )
85
88
  self.langfuse = langfuse_client
86
89
  self.workspace_id = workspace_id
87
90
  self.thread_id = thread_id
@@ -0,0 +1,66 @@
1
+ """DeepSeek provider that speaks the **Responses API** (``/responses``).
2
+
3
+ TEMPORARY: ``deepseek-v4-flash`` is the one DeepSeek model on the Responses API
4
+ today; the rest of the deepseek catalog stays on Chat Completions
5
+ (:class:`~kolega_code.llm.providers.openai.OpenAIProvider`). DeepSeek plans to move
6
+ its catalog over (``deepseek-v4-pro`` in early Aug 2026), at which point this class
7
+ and its routing branch in ``client.py`` can be deleted and the whole ``deepseek``
8
+ provider routed to Responses wholesale.
9
+
10
+ Request building, streaming, and token counting are shared with the OpenAI
11
+ Responses providers via
12
+ :class:`~kolega_code.llm.providers.responses_common.ResponsesProviderBase`; only the
13
+ transport differs — a plain api key against ``api.deepseek.com``. DeepSeek's Responses
14
+ API is stateless (no ``previous_response_id`` / ``reasoning.encrypted_content``), so
15
+ there is no cross-turn reasoning continuity, but unsupported params (including the
16
+ ``include=["reasoning.encrypted_content"]`` the shared builder sends) are silently
17
+ ignored, so the shared request builder works unmodified. The base URL is the bare
18
+ host — DeepSeek's Responses guide uses ``https://api.deepseek.com`` (no ``/v1``).
19
+ """
20
+
21
+ from __future__ import annotations
22
+
23
+ import uuid
24
+ from typing import Optional
25
+
26
+ from openai import AsyncOpenAI
27
+
28
+ from .base import BaseLLMProvider
29
+ from .responses_common import ResponsesProviderBase
30
+
31
+ DEFAULT_BASE_URL = "https://api.deepseek.com"
32
+ DEFAULT_MODEL = "deepseek-v4-flash"
33
+
34
+
35
+ class DeepSeekResponsesProvider(ResponsesProviderBase):
36
+ """DeepSeek Responses-API provider authenticated with a standard api key."""
37
+
38
+ def __init__(
39
+ self,
40
+ api_key: str,
41
+ max_retries: int = 3,
42
+ requests_per_minute: Optional[int] = None,
43
+ tokens_per_minute: Optional[int] = None,
44
+ base_url: Optional[str] = None,
45
+ provider_name: str = "deepseek",
46
+ ) -> None:
47
+ # Skip OpenAIProvider.__init__ (it builds Chat Completions sync+async
48
+ # clients); wire a Responses-only async client instead.
49
+ BaseLLMProvider.__init__(
50
+ self,
51
+ api_key=api_key,
52
+ max_retries=max_retries,
53
+ requests_per_minute=requests_per_minute,
54
+ tokens_per_minute=tokens_per_minute,
55
+ base_url=base_url or DEFAULT_BASE_URL,
56
+ )
57
+ self.provider_name = provider_name
58
+ # A stable per-session prompt_cache_key lets the backend cache the prompt
59
+ # prefix across turns (DeepSeek ignores it if unsupported, which is harmless).
60
+ self._session_id = str(uuid.uuid4())
61
+ self.async_client = AsyncOpenAI(api_key=api_key, base_url=self.base_url, max_retries=max_retries)
62
+ # The Responses path is async-only; the sync client is unused.
63
+ self.sync_client = None
64
+
65
+ def _default_model(self) -> str:
66
+ return DEFAULT_MODEL
@@ -14,6 +14,11 @@ DEEPSEEK_SPECS = {
14
14
  mode="deepseek_effort",
15
15
  ),
16
16
  },
17
+ # deepseek-v4-flash speaks the Responses API (see DeepSeekResponsesProvider), so its
18
+ # reasoning effort must be emitted as the Responses `reasoning` block rather than the
19
+ # Chat-Completions `reasoning_effort` field the shared Responses request builder ignores.
20
+ # DeepSeek's Responses API is stateless (no reasoning.encrypted_content), so this mode
21
+ # also correctly excludes flash from the flat reasoning_content replay path.
17
22
  ("deepseek", "deepseek-v4-flash"): {
18
23
  "context_length": 1000000,
19
24
  "max_completion_tokens": 384000,
@@ -23,7 +28,7 @@ DEEPSEEK_SPECS = {
23
28
  "thinking_effort": ThinkingEffortSpec(
24
29
  options=("none", "high", "max"),
25
30
  default="high",
26
- mode="deepseek_effort",
31
+ mode="openai_responses_reasoning",
27
32
  ),
28
33
  },
29
34
  }
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "kolega-code"
7
- version = "0.26.3"
7
+ version = "0.26.4"
8
8
  description = "Multi-agent coding in the terminal"
9
9
  readme = "README.md"
10
10
  license = {file = "LICENSE"}
File without changes
File without changes
File without changes
File without changes
File without changes