kolega-code 0.26.4__tar.gz → 0.26.5__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.4 → kolega_code-0.26.5}/CHANGELOG.md +11 -0
  2. {kolega_code-0.26.4 → kolega_code-0.26.5}/PKG-INFO +1 -1
  3. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/__init__.py +1 -1
  4. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/__init__.py +1 -1
  5. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/llm/providers/responses_common.py +40 -2
  6. {kolega_code-0.26.4 → kolega_code-0.26.5}/pyproject.toml +1 -1
  7. {kolega_code-0.26.4 → kolega_code-0.26.5}/.gitignore +0 -0
  8. {kolega_code-0.26.4 → kolega_code-0.26.5}/CONTRIBUTING.md +0 -0
  9. {kolega_code-0.26.4 → kolega_code-0.26.5}/LICENSE +0 -0
  10. {kolega_code-0.26.4 → kolega_code-0.26.5}/MIGRATION.md +0 -0
  11. {kolega_code-0.26.4 → kolega_code-0.26.5}/README.md +0 -0
  12. {kolega_code-0.26.4 → kolega_code-0.26.5}/RELEASING.md +0 -0
  13. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/_bundled_skills/LICENSE +0 -0
  14. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/_bundled_skills/manifest.json +0 -0
  15. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/_bundled_skills/skills/deep-research/SKILL.md +0 -0
  16. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/_bundled_skills/skills/deep-research/references/evidence-and-reporting.md +0 -0
  17. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/_bundled_skills/skills/deep-research/references/gigacode-workflow.md +0 -0
  18. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/_bundled_skills/skills/deep-research/scripts/deep-research.workflow +0 -0
  19. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/_bundled_skills/skills/deep-research/scripts/materialize_report.py +0 -0
  20. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/_bundled_skills/skills/docx/LICENSE +0 -0
  21. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/_bundled_skills/skills/docx/SKILL.md +0 -0
  22. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/_bundled_skills/skills/docx/references/examples.md +0 -0
  23. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/_bundled_skills/skills/docx/references/limitations.md +0 -0
  24. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/_bundled_skills/skills/docx/references/operations.md +0 -0
  25. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/_bundled_skills/skills/docx/references/quality.md +0 -0
  26. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/_bundled_skills/skills/docx/requirements.txt +0 -0
  27. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/_bundled_skills/skills/docx/scripts/docx_tool.py +0 -0
  28. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/_bundled_skills/skills/docx/scripts/smoke_test.py +0 -0
  29. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/_bundled_skills/skills/humanizer/LICENSE +0 -0
  30. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/_bundled_skills/skills/humanizer/SKILL.md +0 -0
  31. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/_bundled_skills/skills/pdf/LICENSE +0 -0
  32. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/_bundled_skills/skills/pdf/SKILL.md +0 -0
  33. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/_bundled_skills/skills/pdf/references/examples.md +0 -0
  34. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/_bundled_skills/skills/pdf/references/limitations.md +0 -0
  35. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/_bundled_skills/skills/pdf/references/ocr.md +0 -0
  36. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/_bundled_skills/skills/pdf/references/operations.md +0 -0
  37. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/_bundled_skills/skills/pdf/references/quality.md +0 -0
  38. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/_bundled_skills/skills/pdf/references/redaction.md +0 -0
  39. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/_bundled_skills/skills/pdf/requirements-ocr-paddle.txt +0 -0
  40. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/_bundled_skills/skills/pdf/requirements-ocr-surya.txt +0 -0
  41. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/_bundled_skills/skills/pdf/requirements.txt +0 -0
  42. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/_bundled_skills/skills/pdf/scripts/pdf_tool.py +0 -0
  43. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/_bundled_skills/skills/pdf/scripts/smoke_test.py +0 -0
  44. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/_bundled_skills/skills/pptx/LICENSE +0 -0
  45. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/_bundled_skills/skills/pptx/SKILL.md +0 -0
  46. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/_bundled_skills/skills/pptx/references/examples.md +0 -0
  47. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/_bundled_skills/skills/pptx/references/limitations.md +0 -0
  48. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/_bundled_skills/skills/pptx/references/operations.md +0 -0
  49. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/_bundled_skills/skills/pptx/requirements.txt +0 -0
  50. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/_bundled_skills/skills/pptx/scripts/pptx_tool.py +0 -0
  51. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/_bundled_skills/skills/pptx/scripts/smoke_test.py +0 -0
  52. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/_bundled_skills/skills/review/SKILL.md +0 -0
  53. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/_bundled_skills/skills/review/references/github-publishing.md +0 -0
  54. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/_bundled_skills/skills/skill-authoring/SKILL.md +0 -0
  55. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/_bundled_skills/skills/skill-authoring/references/review-checklist.md +0 -0
  56. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/_bundled_skills/skills/xlsx/LICENSE +0 -0
  57. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/_bundled_skills/skills/xlsx/SKILL.md +0 -0
  58. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/_bundled_skills/skills/xlsx/references/examples.md +0 -0
  59. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/_bundled_skills/skills/xlsx/references/limitations.md +0 -0
  60. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/_bundled_skills/skills/xlsx/references/operations.md +0 -0
  61. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/_bundled_skills/skills/xlsx/references/quality.md +0 -0
  62. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/_bundled_skills/skills/xlsx/requirements.txt +0 -0
  63. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/_bundled_skills/skills/xlsx/scripts/smoke_test.py +0 -0
  64. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/_bundled_skills/skills/xlsx/scripts/xlsx_tool.py +0 -0
  65. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/baseagent.py +0 -0
  66. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/browseragent.py +0 -0
  67. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/coder.py +0 -0
  68. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/common.py +0 -0
  69. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/compression.py +0 -0
  70. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/context.py +0 -0
  71. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/conversation.py +0 -0
  72. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/custom_agents.py +0 -0
  73. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/edit_protocols.py +0 -0
  74. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/errors.py +0 -0
  75. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/eval/__init__.py +0 -0
  76. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/eval/bridge.py +0 -0
  77. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/eval/bundle-requirements.in +0 -0
  78. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/eval/bundle-requirements.txt +0 -0
  79. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/eval/env.py +0 -0
  80. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/eval/js_kernel.py +0 -0
  81. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/eval/kernel.py +0 -0
  82. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/eval/prelude.js +0 -0
  83. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/eval/prelude.py +0 -0
  84. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/eval/protocol.py +0 -0
  85. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/eval/py_kernel.py +0 -0
  86. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/eval/runner.js +0 -0
  87. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/eval/runner.py +0 -0
  88. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/generalagent.py +0 -0
  89. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/goal.py +0 -0
  90. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/investigationagent.py +0 -0
  91. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/model_routing.py +0 -0
  92. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/orchestration/__init__.py +0 -0
  93. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/orchestration/accounting.py +0 -0
  94. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/orchestration/budget.py +0 -0
  95. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/orchestration/context.py +0 -0
  96. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/orchestration/errors.py +0 -0
  97. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/orchestration/executor.py +0 -0
  98. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/orchestration/guide.py +0 -0
  99. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/orchestration/journal.py +0 -0
  100. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/orchestration/runtime.py +0 -0
  101. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/orchestration/types.py +0 -0
  102. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/planningagent.py +0 -0
  103. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/prompt_dump.py +0 -0
  104. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/prompt_overrides.py +0 -0
  105. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/prompt_provider.py +0 -0
  106. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/prompt_templates/auxiliary/compression/summary.system.md +0 -0
  107. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/prompt_templates/auxiliary/compression/summary.user.md.j2 +0 -0
  108. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/prompt_templates/auxiliary/terminal/output_summary.system.md +0 -0
  109. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/prompt_templates/auxiliary/terminal/safety.system.md +0 -0
  110. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/prompt_templates/auxiliary/tools/think_hard.system.md +0 -0
  111. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/prompt_templates/extensions/cli/build_questions.md +0 -0
  112. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/prompt_templates/extensions/cli/current_plan_artifact.md.j2 +0 -0
  113. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/prompt_templates/extensions/cli/planning_questions.md +0 -0
  114. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/prompt_templates/extensions/cli/scratchpad.md.j2 +0 -0
  115. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/prompt_templates/extensions/cli/shared_task_list.md +0 -0
  116. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/prompt_templates/extensions/cli/shared_task_list_readonly.md +0 -0
  117. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/prompt_templates/extensions/cli/worktree_control.md.j2 +0 -0
  118. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/prompt_templates/extensions/skills/catalog.md.j2 +0 -0
  119. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/prompt_templates/system/agents/browser.md.j2 +0 -0
  120. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/prompt_templates/system/agents/coder_cli.md.j2 +0 -0
  121. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/prompt_templates/system/agents/general.md.j2 +0 -0
  122. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/prompt_templates/system/agents/investigation.md.j2 +0 -0
  123. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/prompt_templates/system/agents/planning.md.j2 +0 -0
  124. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/prompt_templates/system/includes/agents_md_instructions.md +0 -0
  125. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/prompt_templates/system/includes/context_updates.md +0 -0
  126. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/prompt_templates/system/includes/environment_variables/workspace_env_vars.md +0 -0
  127. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/prompt_templates/system/includes/frontend_guidance.md +0 -0
  128. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/prompt_templates/system/includes/starter_templates/expo.md +0 -0
  129. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/prompt_templates/system/includes/starter_templates/html_website.md +0 -0
  130. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/prompt_templates/system/includes/starter_templates/mern_stack.md +0 -0
  131. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/prompt_templates/system/includes/starter_templates/react_vite_shadcdn.md +0 -0
  132. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/prompt_templates/user_tasks/cli/implement_plan.md.j2 +0 -0
  133. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/prompt_templates/user_tasks/cli/init_agents.md.j2 +0 -0
  134. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/prompts.py +0 -0
  135. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/tool_backend/agent_tool.py +0 -0
  136. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/tool_backend/base_tool.py +0 -0
  137. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/tool_backend/browser_tool.py +0 -0
  138. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/tool_backend/build_tool.py +0 -0
  139. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/tool_backend/codex_patch.py +0 -0
  140. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/tool_backend/edit_preview.py +0 -0
  141. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/tool_backend/edit_tool.py +0 -0
  142. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/tool_backend/eval_tool.py +0 -0
  143. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/tool_backend/glob_tool.py +0 -0
  144. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/tool_backend/hashline_v2.py +0 -0
  145. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/tool_backend/list_directory_tool.py +0 -0
  146. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/tool_backend/lsp_tool.py +0 -0
  147. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/tool_backend/memory_tool.py +0 -0
  148. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/tool_backend/read_file_tool.py +0 -0
  149. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/tool_backend/read_image_tool.py +0 -0
  150. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/tool_backend/search_backends/__init__.py +0 -0
  151. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/tool_backend/search_backends/base.py +0 -0
  152. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/tool_backend/search_backends/duckduckgo.py +0 -0
  153. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/tool_backend/search_backends/errors.py +0 -0
  154. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/tool_backend/search_backends/firecrawl.py +0 -0
  155. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/tool_backend/search_backends/models.py +0 -0
  156. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/tool_backend/search_backends/searxng.py +0 -0
  157. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/tool_backend/search_backends/tavily.py +0 -0
  158. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/tool_backend/search_codebase_tool.py +0 -0
  159. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/tool_backend/snapshot_tool.py +0 -0
  160. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/tool_backend/streaming_tool.py +0 -0
  161. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/tool_backend/terminal_tool.py +0 -0
  162. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/tool_backend/think_hard_tool.py +0 -0
  163. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/tool_backend/web_fetch/__init__.py +0 -0
  164. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/tool_backend/web_fetch/answering.py +0 -0
  165. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/tool_backend/web_fetch/documents.py +0 -0
  166. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/tool_backend/web_fetch/extractors.py +0 -0
  167. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/tool_backend/web_fetch/pipeline.py +0 -0
  168. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/tool_backend/web_fetch/retrieval.py +0 -0
  169. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/tool_backend/web_fetch_tool.py +0 -0
  170. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/tool_backend/web_search_tool.py +0 -0
  171. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/tool_backend/workflow_tool.py +0 -0
  172. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/tools.py +0 -0
  173. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/utils/commands.py +0 -0
  174. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/agent/volatile_context.py +0 -0
  175. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/auth/__init__.py +0 -0
  176. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/auth/_jwt.py +0 -0
  177. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/auth/chatgpt_oauth.py +0 -0
  178. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/auth/constants.py +0 -0
  179. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/auth/tokens.py +0 -0
  180. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/browser_extension/__init__.py +0 -0
  181. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/browser_extension/framing.py +0 -0
  182. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/browser_extension/installer.py +0 -0
  183. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/browser_extension/manager.py +0 -0
  184. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/browser_extension/multiplex.py +0 -0
  185. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/browser_extension/native_host.py +0 -0
  186. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/browser_extension/protocol.py +0 -0
  187. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/browser_extension/registry.py +0 -0
  188. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/browser_extension/runtime.py +0 -0
  189. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/cli/__init__.py +0 -0
  190. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/cli/app.py +0 -0
  191. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/cli/browser_backend.py +0 -0
  192. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/cli/clipboard_image.py +0 -0
  193. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/cli/config.py +0 -0
  194. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/cli/connection.py +0 -0
  195. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/cli/cron.py +0 -0
  196. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/cli/diagnostics.py +0 -0
  197. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/cli/file_index.py +0 -0
  198. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/cli/goal.py +0 -0
  199. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/cli/loop.py +0 -0
  200. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/cli/main.py +0 -0
  201. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/cli/mentions.py +0 -0
  202. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/cli/messages.py +0 -0
  203. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/cli/model_catalog.py +0 -0
  204. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/cli/model_connection.py +0 -0
  205. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/cli/plan_artifacts.py +0 -0
  206. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/cli/provider_registry.py +0 -0
  207. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/cli/session_event_store.py +0 -0
  208. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/cli/session_journal.py +0 -0
  209. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/cli/session_store.py +0 -0
  210. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/cli/settings.py +0 -0
  211. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/cli/skills.py +0 -0
  212. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/cli/slash_commands.py +0 -0
  213. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/cli/theme.py +0 -0
  214. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/cli/tui/__init__.py +0 -0
  215. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/cli/tui/agent_runtime.py +0 -0
  216. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/cli/tui/app_base.py +0 -0
  217. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/cli/tui/changes_screen.py +0 -0
  218. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/cli/tui/command_handlers.py +0 -0
  219. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/cli/tui/constants.py +0 -0
  220. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/cli/tui/custom_model.py +0 -0
  221. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/cli/tui/loop_runtime.py +0 -0
  222. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/cli/tui/memory_screen.py +0 -0
  223. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/cli/tui/onboarding_screen.py +0 -0
  224. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/cli/tui/prompt_flows.py +0 -0
  225. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/cli/tui/session_diff.py +0 -0
  226. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/cli/tui/settings_panel.py +0 -0
  227. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/cli/tui/settings_screen.py +0 -0
  228. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/cli/tui/state.py +0 -0
  229. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/cli/tui/status_dashboard.py +0 -0
  230. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/cli/tui/styles.tcss +0 -0
  231. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/cli/tui/sub_agent_screen.py +0 -0
  232. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/cli/tui/terminal_display.py +0 -0
  233. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/cli/tui/transcript.py +0 -0
  234. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/cli/tui/widgets.py +0 -0
  235. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/cli/updater.py +0 -0
  236. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/config.py +0 -0
  237. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/events.py +0 -0
  238. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/git_env.py +0 -0
  239. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/hooks/__init__.py +0 -0
  240. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/hooks/backends.py +0 -0
  241. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/hooks/config.py +0 -0
  242. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/hooks/dispatcher.py +0 -0
  243. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/hooks/events.py +0 -0
  244. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/hooks/matcher.py +0 -0
  245. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/hooks/outcome.py +0 -0
  246. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/llm/client.py +0 -0
  247. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/llm/exceptions.py +0 -0
  248. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/llm/instrumented_client.py +0 -0
  249. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/llm/models.py +0 -0
  250. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/llm/providers/__init__.py +0 -0
  251. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/llm/providers/anthropic.py +0 -0
  252. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/llm/providers/base.py +0 -0
  253. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/llm/providers/chatgpt_oauth.py +0 -0
  254. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/llm/providers/deepseek_responses.py +0 -0
  255. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/llm/providers/google.py +0 -0
  256. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/llm/providers/models.py +0 -0
  257. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/llm/providers/openai.py +0 -0
  258. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/llm/providers/openai_responses.py +0 -0
  259. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/llm/ratelimit.py +0 -0
  260. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/llm/specs/__init__.py +0 -0
  261. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/llm/specs/accessors.py +0 -0
  262. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/llm/specs/catalog/__init__.py +0 -0
  263. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/llm/specs/catalog/anthropic.py +0 -0
  264. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/llm/specs/catalog/dashscope.py +0 -0
  265. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/llm/specs/catalog/deepseek.py +0 -0
  266. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/llm/specs/catalog/fireworks.py +0 -0
  267. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/llm/specs/catalog/google.py +0 -0
  268. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/llm/specs/catalog/kimi_coding.py +0 -0
  269. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/llm/specs/catalog/moonshot.py +0 -0
  270. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/llm/specs/catalog/ollama_cloud.py +0 -0
  271. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/llm/specs/catalog/openai.py +0 -0
  272. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/llm/specs/catalog/openai_chatgpt.py +0 -0
  273. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/llm/specs/catalog/openrouter.py +0 -0
  274. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/llm/specs/catalog/together.py +0 -0
  275. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/llm/specs/catalog/xai.py +0 -0
  276. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/llm/specs/catalog/zai.py +0 -0
  277. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/llm/specs/openrouter_catalog.py +0 -0
  278. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/llm/specs/thinking.py +0 -0
  279. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/llm/specs/types.py +0 -0
  280. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/llm/timeouts.py +0 -0
  281. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/llm/tool_execution_ids.py +0 -0
  282. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/local_state.py +0 -0
  283. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/mcp/__init__.py +0 -0
  284. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/mcp/config.py +0 -0
  285. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/mcp/oauth.py +0 -0
  286. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/mcp/service.py +0 -0
  287. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/mcp/state.py +0 -0
  288. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/mcp/tools.py +0 -0
  289. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/mcp/transport.py +0 -0
  290. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/memory/__init__.py +0 -0
  291. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/memory/identity.py +0 -0
  292. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/memory/manager.py +0 -0
  293. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/memory/manifest.py +0 -0
  294. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/memory/markdown.py +0 -0
  295. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/memory/models.py +0 -0
  296. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/memory/protocol.py +0 -0
  297. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/memory/registry.py +0 -0
  298. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/models/__init__.py +0 -0
  299. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/models/sandbox_terminal_state.py +0 -0
  300. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/permissions.py +0 -0
  301. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/runtime.py +0 -0
  302. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/sandbox/README.md +0 -0
  303. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/sandbox/__init__.py +0 -0
  304. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/sandbox/async_filesystem.py +0 -0
  305. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/sandbox/base.py +0 -0
  306. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/sandbox/browser.py +0 -0
  307. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/sandbox/event_loop.py +0 -0
  308. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/sandbox/filesystem.py +0 -0
  309. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/sandbox/local.py +0 -0
  310. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/sandbox/serializer.py +0 -0
  311. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/sandbox/terminal.py +0 -0
  312. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/sandbox/utils.py +0 -0
  313. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/scratchpad.py +0 -0
  314. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/security/__init__.py +0 -0
  315. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/security/secrets.py +0 -0
  316. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/services/base.py +0 -0
  317. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/services/browser.py +0 -0
  318. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/services/file_system.py +0 -0
  319. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/services/html.py +0 -0
  320. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/services/lsp/__init__.py +0 -0
  321. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/services/lsp/client.py +0 -0
  322. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/services/lsp/config.py +0 -0
  323. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/services/lsp/detector.py +0 -0
  324. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/services/lsp/diagnostics.py +0 -0
  325. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/services/lsp/edits.py +0 -0
  326. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/services/lsp/manager.py +0 -0
  327. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/services/lsp/registry.py +0 -0
  328. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/services/lsp/registry.yaml +0 -0
  329. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/services/snapshots.py +0 -0
  330. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/services/terminal.py +0 -0
  331. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/services/terminal_buffer.py +0 -0
  332. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/services/workspace_scan.py +0 -0
  333. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/session/__init__.py +0 -0
  334. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/session/control.py +0 -0
  335. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/session/inmemory.py +0 -0
  336. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/session/projection.py +0 -0
  337. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/session/recording.py +0 -0
  338. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/session/runtime.py +0 -0
  339. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/session/store.py +0 -0
  340. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/testing/__init__.py +0 -0
  341. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/testing/store_conformance.py +0 -0
  342. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/tools/__init__.py +0 -0
  343. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/tools/core.py +0 -0
  344. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/tools/definitions.py +0 -0
  345. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/tools/registry.py +0 -0
  346. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/utils/__init__.py +0 -0
  347. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/utils/images.py +0 -0
  348. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/web/__init__.py +0 -0
  349. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/web/assets/fold.js +0 -0
  350. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/web/assets/player.css +0 -0
  351. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/web/assets/player.html +0 -0
  352. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/web/assets/player.js +0 -0
  353. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/web/bundle.py +0 -0
  354. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/web/hosting.py +0 -0
  355. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/web/redaction.py +0 -0
  356. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/web/server.py +0 -0
  357. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/web/singlefile.py +0 -0
  358. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/web/theme_css.py +0 -0
  359. {kolega_code-0.26.4 → kolega_code-0.26.5}/kolega_code/worktrees.py +0 -0
@@ -6,6 +6,17 @@ This project uses GitHub Releases for detailed generated release notes. This fil
6
6
 
7
7
  ## Unreleased
8
8
 
9
+ ## 0.26.5 - 2026-08-02
10
+
11
+ ### Fixed
12
+
13
+ - DeepSeek `deepseek-v4-flash` on the Responses API no longer crashes mid-task
14
+ with a 400 "No tool output found for tool call ..." when the model returns tool
15
+ calls together with assistant text. The text was serialized between the tool
16
+ calls and their outputs, which DeepSeek rejects; it is now emitted before the
17
+ calls so each call's output stays adjacent. Tool calls are also defensively
18
+ guaranteed a matching output on replay.
19
+
9
20
  ## 0.26.4 - 2026-08-02
10
21
 
11
22
  ### Changed
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: kolega-code
3
- Version: 0.26.4
3
+ Version: 0.26.5
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.4"
154
+ __version__ = "0.26.5"
@@ -51,4 +51,4 @@ __all__ = [
51
51
  "ToolExtension",
52
52
  ]
53
53
 
54
- __version__ = "0.26.4"
54
+ __version__ = "0.26.5"
@@ -129,6 +129,7 @@ def to_responses_input(messages: MessageHistory) -> List[Dict[str, Any]]:
129
129
  continue
130
130
 
131
131
  text_parts: List[tuple] = []
132
+ tool_call_items: List[Dict[str, Any]] = []
132
133
  tool_image_messages: List[Dict[str, Any]] = []
133
134
  for block in message.content or []:
134
135
  if isinstance(block, ResponsesReasoningBlock):
@@ -140,8 +141,14 @@ def to_responses_input(messages: MessageHistory) -> List[Dict[str, Any]]:
140
141
  # reasoning block first in the assistant message.
141
142
  items.append(block.to_responses_item())
142
143
  elif isinstance(block, ToolCall):
144
+ # Collected, not emitted inline: the function_call items must be the
145
+ # LAST items of the assistant turn so the next message's
146
+ # function_call_output items follow them immediately. An assistant
147
+ # text item interposed between the calls and their outputs makes
148
+ # DeepSeek's Responses API 400 ("No tool output found for tool call
149
+ # ..."). See the assistant-text ordering below.
143
150
  if block.input_kind == "freeform":
144
- items.append(
151
+ tool_call_items.append(
145
152
  {
146
153
  "type": "custom_tool_call",
147
154
  "call_id": block.id,
@@ -150,7 +157,7 @@ def to_responses_input(messages: MessageHistory) -> List[Dict[str, Any]]:
150
157
  }
151
158
  )
152
159
  else:
153
- items.append(
160
+ tool_call_items.append(
154
161
  {
155
162
  "type": "function_call",
156
163
  "call_id": block.id,
@@ -178,11 +185,42 @@ def to_responses_input(messages: MessageHistory) -> List[Dict[str, Any]]:
178
185
  # Foreign Anthropic thinking/redacted-thinking blocks (from a prior
179
186
  # provider) are skipped here; adapt_history_for_provider has already
180
187
  # dropped them before this conversion runs.
188
+ # Assistant text goes BEFORE the tool calls; the calls stay last so their
189
+ # outputs (next message) are adjacent — required by DeepSeek's Responses API.
181
190
  if text_parts:
182
191
  item = _role_message_item(message.role, text_parts)
183
192
  if item:
184
193
  items.append(item)
194
+ items.extend(tool_call_items)
185
195
  items.extend(tool_image_messages)
196
+
197
+ # Every function_call must be answered by a function_call_output or the
198
+ # Responses API 400s ("No tool output found for tool call ..."). A tool call
199
+ # can be left unanswered when a turn made several parallel calls and one
200
+ # result went missing (e.g. a yielded/long-running command). Mirror the Chat
201
+ # path (Message.to_openai) and pad any orphan with a placeholder output so the
202
+ # request stays valid. Keyed by call_id, preserving the freeform vs json shape.
203
+ # Defense-in-depth: every function_call must still be answered by a
204
+ # function_call_output, or the Responses API 400s. Pad any orphan (mirrors the
205
+ # Chat path, Message.to_openai). With the ordering above this should not fire,
206
+ # but a genuinely dropped result must not become a hard request failure.
207
+ answered = {
208
+ it.get("call_id") for it in items if it.get("type") in ("function_call_output", "custom_tool_call_output")
209
+ }
210
+ for it in items:
211
+ if it.get("type") not in ("function_call", "custom_tool_call"):
212
+ continue
213
+ call_id = it.get("call_id")
214
+ if call_id in answered:
215
+ continue
216
+ answered.add(call_id)
217
+ items.append(
218
+ {
219
+ "type": "custom_tool_call_output" if it["type"] == "custom_tool_call" else "function_call_output",
220
+ "call_id": call_id,
221
+ "output": "[no tool output recorded]",
222
+ }
223
+ )
186
224
  return items
187
225
 
188
226
 
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "kolega-code"
7
- version = "0.26.4"
7
+ version = "0.26.5"
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