kolega-code 0.26.0__tar.gz → 0.26.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 (359) hide show
  1. {kolega_code-0.26.0 → kolega_code-0.26.2}/CHANGELOG.md +61 -0
  2. {kolega_code-0.26.0 → kolega_code-0.26.2}/PKG-INFO +91 -106
  3. kolega_code-0.26.2/README.md +227 -0
  4. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/__init__.py +1 -1
  5. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/__init__.py +1 -1
  6. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/orchestration/__init__.py +4 -3
  7. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/orchestration/executor.py +4 -1
  8. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/orchestration/guide.py +75 -6
  9. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/orchestration/journal.py +66 -19
  10. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/orchestration/runtime.py +222 -32
  11. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/orchestration/types.py +2 -1
  12. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tool_backend/workflow_tool.py +183 -6
  13. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tools.py +26 -2
  14. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/app.py +4 -4
  15. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/main.py +12 -0
  16. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/tui/app_base.py +1 -1
  17. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/tui/command_handlers.py +3 -12
  18. {kolega_code-0.26.0 → kolega_code-0.26.2}/pyproject.toml +2 -2
  19. kolega_code-0.26.0/README.md +0 -242
  20. {kolega_code-0.26.0 → kolega_code-0.26.2}/.gitignore +0 -0
  21. {kolega_code-0.26.0 → kolega_code-0.26.2}/CONTRIBUTING.md +0 -0
  22. {kolega_code-0.26.0 → kolega_code-0.26.2}/LICENSE +0 -0
  23. {kolega_code-0.26.0 → kolega_code-0.26.2}/MIGRATION.md +0 -0
  24. {kolega_code-0.26.0 → kolega_code-0.26.2}/RELEASING.md +0 -0
  25. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/LICENSE +0 -0
  26. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/manifest.json +0 -0
  27. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/deep-research/SKILL.md +0 -0
  28. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/deep-research/references/evidence-and-reporting.md +0 -0
  29. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/deep-research/references/gigacode-workflow.md +0 -0
  30. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/deep-research/scripts/deep-research.workflow +0 -0
  31. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/deep-research/scripts/materialize_report.py +0 -0
  32. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/docx/LICENSE +0 -0
  33. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/docx/SKILL.md +0 -0
  34. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/docx/references/examples.md +0 -0
  35. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/docx/references/limitations.md +0 -0
  36. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/docx/references/operations.md +0 -0
  37. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/docx/references/quality.md +0 -0
  38. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/docx/requirements.txt +0 -0
  39. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/docx/scripts/docx_tool.py +0 -0
  40. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/docx/scripts/smoke_test.py +0 -0
  41. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/humanizer/LICENSE +0 -0
  42. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/humanizer/SKILL.md +0 -0
  43. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/pdf/LICENSE +0 -0
  44. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/pdf/SKILL.md +0 -0
  45. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/pdf/references/examples.md +0 -0
  46. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/pdf/references/limitations.md +0 -0
  47. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/pdf/references/ocr.md +0 -0
  48. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/pdf/references/operations.md +0 -0
  49. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/pdf/references/quality.md +0 -0
  50. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/pdf/references/redaction.md +0 -0
  51. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/pdf/requirements-ocr-paddle.txt +0 -0
  52. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/pdf/requirements-ocr-surya.txt +0 -0
  53. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/pdf/requirements.txt +0 -0
  54. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/pdf/scripts/pdf_tool.py +0 -0
  55. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/pdf/scripts/smoke_test.py +0 -0
  56. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/pptx/LICENSE +0 -0
  57. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/pptx/SKILL.md +0 -0
  58. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/pptx/references/examples.md +0 -0
  59. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/pptx/references/limitations.md +0 -0
  60. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/pptx/references/operations.md +0 -0
  61. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/pptx/requirements.txt +0 -0
  62. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/pptx/scripts/pptx_tool.py +0 -0
  63. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/pptx/scripts/smoke_test.py +0 -0
  64. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/review/SKILL.md +0 -0
  65. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/review/references/github-publishing.md +0 -0
  66. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/skill-authoring/SKILL.md +0 -0
  67. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/skill-authoring/references/review-checklist.md +0 -0
  68. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/xlsx/LICENSE +0 -0
  69. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/xlsx/SKILL.md +0 -0
  70. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/xlsx/references/examples.md +0 -0
  71. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/xlsx/references/limitations.md +0 -0
  72. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/xlsx/references/operations.md +0 -0
  73. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/xlsx/references/quality.md +0 -0
  74. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/xlsx/requirements.txt +0 -0
  75. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/xlsx/scripts/smoke_test.py +0 -0
  76. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/xlsx/scripts/xlsx_tool.py +0 -0
  77. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/baseagent.py +0 -0
  78. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/browseragent.py +0 -0
  79. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/coder.py +0 -0
  80. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/common.py +0 -0
  81. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/compression.py +0 -0
  82. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/context.py +0 -0
  83. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/conversation.py +0 -0
  84. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/custom_agents.py +0 -0
  85. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/edit_protocols.py +0 -0
  86. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/errors.py +0 -0
  87. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/eval/__init__.py +0 -0
  88. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/eval/bridge.py +0 -0
  89. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/eval/bundle-requirements.in +0 -0
  90. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/eval/bundle-requirements.txt +0 -0
  91. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/eval/env.py +0 -0
  92. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/eval/js_kernel.py +0 -0
  93. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/eval/kernel.py +0 -0
  94. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/eval/prelude.js +0 -0
  95. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/eval/prelude.py +0 -0
  96. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/eval/protocol.py +0 -0
  97. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/eval/py_kernel.py +0 -0
  98. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/eval/runner.js +0 -0
  99. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/eval/runner.py +0 -0
  100. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/generalagent.py +0 -0
  101. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/goal.py +0 -0
  102. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/investigationagent.py +0 -0
  103. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/model_routing.py +0 -0
  104. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/orchestration/accounting.py +0 -0
  105. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/orchestration/budget.py +0 -0
  106. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/orchestration/context.py +0 -0
  107. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/orchestration/errors.py +0 -0
  108. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/planningagent.py +0 -0
  109. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/prompt_dump.py +0 -0
  110. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/prompt_overrides.py +0 -0
  111. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/prompt_provider.py +0 -0
  112. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/prompt_templates/auxiliary/compression/summary.system.md +0 -0
  113. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/prompt_templates/auxiliary/compression/summary.user.md.j2 +0 -0
  114. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/prompt_templates/auxiliary/terminal/output_summary.system.md +0 -0
  115. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/prompt_templates/auxiliary/terminal/safety.system.md +0 -0
  116. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/prompt_templates/auxiliary/tools/think_hard.system.md +0 -0
  117. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/prompt_templates/extensions/cli/build_questions.md +0 -0
  118. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/prompt_templates/extensions/cli/current_plan_artifact.md.j2 +0 -0
  119. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/prompt_templates/extensions/cli/planning_questions.md +0 -0
  120. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/prompt_templates/extensions/cli/scratchpad.md.j2 +0 -0
  121. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/prompt_templates/extensions/cli/shared_task_list.md +0 -0
  122. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/prompt_templates/extensions/cli/shared_task_list_readonly.md +0 -0
  123. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/prompt_templates/extensions/cli/worktree_control.md.j2 +0 -0
  124. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/prompt_templates/extensions/skills/catalog.md.j2 +0 -0
  125. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/prompt_templates/system/agents/browser.md.j2 +0 -0
  126. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/prompt_templates/system/agents/coder_cli.md.j2 +0 -0
  127. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/prompt_templates/system/agents/general.md.j2 +0 -0
  128. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/prompt_templates/system/agents/investigation.md.j2 +0 -0
  129. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/prompt_templates/system/agents/planning.md.j2 +0 -0
  130. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/prompt_templates/system/includes/agents_md_instructions.md +0 -0
  131. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/prompt_templates/system/includes/context_updates.md +0 -0
  132. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/prompt_templates/system/includes/environment_variables/workspace_env_vars.md +0 -0
  133. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/prompt_templates/system/includes/frontend_guidance.md +0 -0
  134. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/prompt_templates/system/includes/starter_templates/expo.md +0 -0
  135. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/prompt_templates/system/includes/starter_templates/html_website.md +0 -0
  136. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/prompt_templates/system/includes/starter_templates/mern_stack.md +0 -0
  137. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/prompt_templates/system/includes/starter_templates/react_vite_shadcdn.md +0 -0
  138. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/prompt_templates/user_tasks/cli/implement_plan.md.j2 +0 -0
  139. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/prompt_templates/user_tasks/cli/init_agents.md.j2 +0 -0
  140. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/prompts.py +0 -0
  141. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tool_backend/agent_tool.py +0 -0
  142. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tool_backend/base_tool.py +0 -0
  143. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tool_backend/browser_tool.py +0 -0
  144. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tool_backend/build_tool.py +0 -0
  145. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tool_backend/codex_patch.py +0 -0
  146. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tool_backend/edit_preview.py +0 -0
  147. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tool_backend/edit_tool.py +0 -0
  148. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tool_backend/eval_tool.py +0 -0
  149. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tool_backend/glob_tool.py +0 -0
  150. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tool_backend/hashline_v2.py +0 -0
  151. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tool_backend/list_directory_tool.py +0 -0
  152. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tool_backend/lsp_tool.py +0 -0
  153. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tool_backend/memory_tool.py +0 -0
  154. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tool_backend/read_file_tool.py +0 -0
  155. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tool_backend/read_image_tool.py +0 -0
  156. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tool_backend/search_backends/__init__.py +0 -0
  157. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tool_backend/search_backends/base.py +0 -0
  158. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tool_backend/search_backends/duckduckgo.py +0 -0
  159. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tool_backend/search_backends/errors.py +0 -0
  160. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tool_backend/search_backends/firecrawl.py +0 -0
  161. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tool_backend/search_backends/models.py +0 -0
  162. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tool_backend/search_backends/searxng.py +0 -0
  163. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tool_backend/search_backends/tavily.py +0 -0
  164. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tool_backend/search_codebase_tool.py +0 -0
  165. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tool_backend/snapshot_tool.py +0 -0
  166. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tool_backend/streaming_tool.py +0 -0
  167. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tool_backend/terminal_tool.py +0 -0
  168. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tool_backend/think_hard_tool.py +0 -0
  169. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tool_backend/web_fetch/__init__.py +0 -0
  170. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tool_backend/web_fetch/answering.py +0 -0
  171. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tool_backend/web_fetch/documents.py +0 -0
  172. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tool_backend/web_fetch/extractors.py +0 -0
  173. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tool_backend/web_fetch/pipeline.py +0 -0
  174. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tool_backend/web_fetch/retrieval.py +0 -0
  175. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tool_backend/web_fetch_tool.py +0 -0
  176. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tool_backend/web_search_tool.py +0 -0
  177. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/utils/commands.py +0 -0
  178. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/volatile_context.py +0 -0
  179. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/auth/__init__.py +0 -0
  180. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/auth/_jwt.py +0 -0
  181. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/auth/chatgpt_oauth.py +0 -0
  182. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/auth/constants.py +0 -0
  183. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/auth/tokens.py +0 -0
  184. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/browser_extension/__init__.py +0 -0
  185. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/browser_extension/framing.py +0 -0
  186. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/browser_extension/installer.py +0 -0
  187. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/browser_extension/manager.py +0 -0
  188. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/browser_extension/multiplex.py +0 -0
  189. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/browser_extension/native_host.py +0 -0
  190. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/browser_extension/protocol.py +0 -0
  191. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/browser_extension/registry.py +0 -0
  192. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/browser_extension/runtime.py +0 -0
  193. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/__init__.py +0 -0
  194. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/browser_backend.py +0 -0
  195. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/clipboard_image.py +0 -0
  196. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/config.py +0 -0
  197. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/connection.py +0 -0
  198. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/cron.py +0 -0
  199. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/diagnostics.py +0 -0
  200. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/file_index.py +0 -0
  201. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/goal.py +0 -0
  202. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/loop.py +0 -0
  203. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/mentions.py +0 -0
  204. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/messages.py +0 -0
  205. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/model_catalog.py +0 -0
  206. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/model_connection.py +0 -0
  207. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/plan_artifacts.py +0 -0
  208. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/provider_registry.py +0 -0
  209. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/session_event_store.py +0 -0
  210. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/session_journal.py +0 -0
  211. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/session_store.py +0 -0
  212. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/settings.py +0 -0
  213. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/skills.py +0 -0
  214. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/slash_commands.py +0 -0
  215. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/theme.py +0 -0
  216. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/tui/__init__.py +0 -0
  217. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/tui/agent_runtime.py +0 -0
  218. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/tui/changes_screen.py +0 -0
  219. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/tui/constants.py +0 -0
  220. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/tui/custom_model.py +0 -0
  221. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/tui/loop_runtime.py +0 -0
  222. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/tui/memory_screen.py +0 -0
  223. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/tui/onboarding_screen.py +0 -0
  224. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/tui/prompt_flows.py +0 -0
  225. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/tui/session_diff.py +0 -0
  226. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/tui/settings_panel.py +0 -0
  227. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/tui/settings_screen.py +0 -0
  228. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/tui/state.py +0 -0
  229. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/tui/status_dashboard.py +0 -0
  230. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/tui/styles.tcss +0 -0
  231. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/tui/sub_agent_screen.py +0 -0
  232. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/tui/terminal_display.py +0 -0
  233. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/tui/transcript.py +0 -0
  234. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/tui/widgets.py +0 -0
  235. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/updater.py +0 -0
  236. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/config.py +0 -0
  237. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/events.py +0 -0
  238. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/git_env.py +0 -0
  239. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/hooks/__init__.py +0 -0
  240. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/hooks/backends.py +0 -0
  241. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/hooks/config.py +0 -0
  242. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/hooks/dispatcher.py +0 -0
  243. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/hooks/events.py +0 -0
  244. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/hooks/matcher.py +0 -0
  245. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/hooks/outcome.py +0 -0
  246. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/llm/client.py +0 -0
  247. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/llm/exceptions.py +0 -0
  248. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/llm/instrumented_client.py +0 -0
  249. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/llm/models.py +0 -0
  250. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/llm/providers/__init__.py +0 -0
  251. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/llm/providers/anthropic.py +0 -0
  252. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/llm/providers/base.py +0 -0
  253. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/llm/providers/chatgpt_oauth.py +0 -0
  254. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/llm/providers/google.py +0 -0
  255. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/llm/providers/models.py +0 -0
  256. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/llm/providers/openai.py +0 -0
  257. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/llm/providers/openai_responses.py +0 -0
  258. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/llm/providers/responses_common.py +0 -0
  259. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/llm/ratelimit.py +0 -0
  260. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/llm/specs/__init__.py +0 -0
  261. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/llm/specs/accessors.py +0 -0
  262. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/llm/specs/catalog/__init__.py +0 -0
  263. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/llm/specs/catalog/anthropic.py +0 -0
  264. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/llm/specs/catalog/dashscope.py +0 -0
  265. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/llm/specs/catalog/deepseek.py +0 -0
  266. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/llm/specs/catalog/fireworks.py +0 -0
  267. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/llm/specs/catalog/google.py +0 -0
  268. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/llm/specs/catalog/kimi_coding.py +0 -0
  269. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/llm/specs/catalog/moonshot.py +0 -0
  270. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/llm/specs/catalog/ollama_cloud.py +0 -0
  271. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/llm/specs/catalog/openai.py +0 -0
  272. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/llm/specs/catalog/openai_chatgpt.py +0 -0
  273. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/llm/specs/catalog/openrouter.py +0 -0
  274. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/llm/specs/catalog/together.py +0 -0
  275. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/llm/specs/catalog/xai.py +0 -0
  276. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/llm/specs/catalog/zai.py +0 -0
  277. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/llm/specs/openrouter_catalog.py +0 -0
  278. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/llm/specs/thinking.py +0 -0
  279. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/llm/specs/types.py +0 -0
  280. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/llm/timeouts.py +0 -0
  281. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/llm/tool_execution_ids.py +0 -0
  282. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/local_state.py +0 -0
  283. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/mcp/__init__.py +0 -0
  284. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/mcp/config.py +0 -0
  285. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/mcp/oauth.py +0 -0
  286. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/mcp/service.py +0 -0
  287. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/mcp/state.py +0 -0
  288. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/mcp/tools.py +0 -0
  289. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/mcp/transport.py +0 -0
  290. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/memory/__init__.py +0 -0
  291. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/memory/identity.py +0 -0
  292. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/memory/manager.py +0 -0
  293. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/memory/manifest.py +0 -0
  294. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/memory/markdown.py +0 -0
  295. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/memory/models.py +0 -0
  296. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/memory/protocol.py +0 -0
  297. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/memory/registry.py +0 -0
  298. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/models/__init__.py +0 -0
  299. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/models/sandbox_terminal_state.py +0 -0
  300. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/permissions.py +0 -0
  301. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/runtime.py +0 -0
  302. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/sandbox/README.md +0 -0
  303. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/sandbox/__init__.py +0 -0
  304. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/sandbox/async_filesystem.py +0 -0
  305. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/sandbox/base.py +0 -0
  306. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/sandbox/browser.py +0 -0
  307. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/sandbox/event_loop.py +0 -0
  308. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/sandbox/filesystem.py +0 -0
  309. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/sandbox/local.py +0 -0
  310. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/sandbox/serializer.py +0 -0
  311. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/sandbox/terminal.py +0 -0
  312. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/sandbox/utils.py +0 -0
  313. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/scratchpad.py +0 -0
  314. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/security/__init__.py +0 -0
  315. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/security/secrets.py +0 -0
  316. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/services/base.py +0 -0
  317. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/services/browser.py +0 -0
  318. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/services/file_system.py +0 -0
  319. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/services/html.py +0 -0
  320. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/services/lsp/__init__.py +0 -0
  321. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/services/lsp/client.py +0 -0
  322. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/services/lsp/config.py +0 -0
  323. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/services/lsp/detector.py +0 -0
  324. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/services/lsp/diagnostics.py +0 -0
  325. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/services/lsp/edits.py +0 -0
  326. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/services/lsp/manager.py +0 -0
  327. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/services/lsp/registry.py +0 -0
  328. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/services/lsp/registry.yaml +0 -0
  329. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/services/snapshots.py +0 -0
  330. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/services/terminal.py +0 -0
  331. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/services/terminal_buffer.py +0 -0
  332. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/services/workspace_scan.py +0 -0
  333. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/session/__init__.py +0 -0
  334. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/session/control.py +0 -0
  335. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/session/inmemory.py +0 -0
  336. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/session/projection.py +0 -0
  337. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/session/recording.py +0 -0
  338. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/session/runtime.py +0 -0
  339. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/session/store.py +0 -0
  340. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/testing/__init__.py +0 -0
  341. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/testing/store_conformance.py +0 -0
  342. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/tools/__init__.py +0 -0
  343. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/tools/core.py +0 -0
  344. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/tools/definitions.py +0 -0
  345. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/tools/registry.py +0 -0
  346. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/utils/__init__.py +0 -0
  347. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/utils/images.py +0 -0
  348. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/web/__init__.py +0 -0
  349. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/web/assets/fold.js +0 -0
  350. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/web/assets/player.css +0 -0
  351. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/web/assets/player.html +0 -0
  352. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/web/assets/player.js +0 -0
  353. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/web/bundle.py +0 -0
  354. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/web/hosting.py +0 -0
  355. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/web/redaction.py +0 -0
  356. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/web/server.py +0 -0
  357. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/web/singlefile.py +0 -0
  358. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/web/theme_css.py +0 -0
  359. {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/worktrees.py +0 -0
@@ -6,6 +6,67 @@ This project uses GitHub Releases for detailed generated release notes. This fil
6
6
 
7
7
  ## Unreleased
8
8
 
9
+ ## 0.26.2 - 2026-07-31
10
+
11
+ ### Added
12
+
13
+ - `kolega-code ask --gigacode` enables gigacode workflow orchestration in
14
+ headless runs, matching the TUI's `/gigacode` toggle: the `run_workflow` and
15
+ `list_workflow_runs` tools are exposed and the authoring guide is injected.
16
+ The setting persists with the session, so `ask --session <id>` resumes with
17
+ gigacode still on.
18
+
19
+ ### Changed
20
+
21
+ - Gigacode's concurrent-worker cap is now a flat 8 instead of being derived from
22
+ the host's core count. Workers wait on provider responses rather than CPU, so
23
+ the old formula only made fan-out width vary with the machine — and collapse to
24
+ a single serial worker on a one-CPU host or container.
25
+
26
+ ## 0.26.1 - 2026-07-31
27
+
28
+ ### Fixed
29
+
30
+ - Gigacode resume now matches cached `agent()` results by call content instead
31
+ of call position, so completed work no longer re-runs after `pipeline()`
32
+ timing drift or script edits that shift call positions (one production resume
33
+ had salvaged only 6 of 91 completed calls). Resumed runs also journal what
34
+ they replayed, making a resume of a resume exact, and a duplicate `agent()`
35
+ label now logs a one-time authoring hint. Existing journals work unchanged.
36
+ - Workflow scripts now have a designated drafting location. The authoring
37
+ guide and `script_path` docs direct models to draft long scripts in the
38
+ session scratchpad instead of the project working tree — generated scripts
39
+ in the repo pollute `git status` and go stale for later sessions. The
40
+ executed script is persisted under the run directory either way.
41
+ - Workflow token budgets are harder to undersize by accident. The
42
+ `token_budget` schema, tool docstrings, and authoring guide now carry
43
+ evidence-based sizing anchors (measured across real runs: review calls
44
+ median ~6k/p90 ~24k output tokens, coder calls median ~20k/p90 ~80k,
45
+ reasoning included — size as review_calls × 15k + coder_calls × 50k,
46
+ doubled, or omit), the run warns in the progress log at 75% and 90% spend,
47
+ and a run
48
+ that dies on budget exhaustion tells the model in its tool result that it is
49
+ resumable — with the exact `resume_from_run_id` call and the count of
50
+ journaled calls that will replay free.
51
+ - Workflow fan-out failures are no longer silent. A `pipeline()` stage or
52
+ `parallel()` thunk that raises still drops its item to `None`, but the drop
53
+ is now reported live in the progress log and recorded in the transcript with
54
+ the exception and the offending script line; the `run_workflow` result warns
55
+ with an aggregate (e.g. `AttributeError at script line 299 (x6)`) and
56
+ `run.json` records `script_exception_drops`. A fan-out that comes back all
57
+ `None` with drops is called out as a likely script bug. Budget and agent-cap
58
+ exhaustion now propagate out of fan-outs and fail the run (cancelling and
59
+ draining the remaining chains) instead of shredding it into `None`s —
60
+ previously a run could report `completed` after a script bug silently
61
+ discarded every result.
62
+ - An interrupted gigacode workflow's run id is now recoverable. Runs are
63
+ stamped with their owning session, cancelling a turn marks the run
64
+ `interrupted` in `run.json`, and the new session-scoped `list_workflow_runs`
65
+ tool lists this session's runs (status, tokens, journaled calls, artifact
66
+ paths) so the agent can resume an interrupted run with `resume_from_run_id`
67
+ instead of re-running it from scratch — previously the run id was only
68
+ returned on normal completion, so an interrupted run's journal was orphaned.
69
+
9
70
  ## 0.26.0 - 2026-07-31
10
71
 
11
72
  ### Added
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: kolega-code
3
- Version: 0.26.0
3
+ Version: 0.26.2
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/
@@ -278,7 +278,7 @@ Description-Content-Type: text/markdown
278
278
 
279
279
  # Kolega Code
280
280
 
281
- **Multi-agent coding in the terminal.**
281
+ **A terminal coding agent where the model writes its own multi-agent workflows.**
282
282
 
283
283
  [![PyPI version](https://img.shields.io/pypi/v/kolega-code)](https://pypi.org/project/kolega-code/)
284
284
  [![Python versions](https://img.shields.io/pypi/pyversions/kolega-code)](https://pypi.org/project/kolega-code/)
@@ -288,67 +288,73 @@ Description-Content-Type: text/markdown
288
288
  [![Docs](https://img.shields.io/badge/docs-kolega--ai.github.io-blue)](https://kolega-ai.github.io/kolega-code/)
289
289
  [![Changelog](https://img.shields.io/badge/changelog-keep%20up-blue)](CHANGELOG.md)
290
290
 
291
- Kolega Code is a local-first terminal coding agent built for work that is too wide
292
- for one loop: fan out specialized sub-agents with **Gigacode**, route different
293
- models to different jobs, search the web, drive a browser, and keep sessions,
294
- settings, permissions, and credentials on your machine.
291
+ Kolega Code is a local-first terminal coding agent. For work that is too broad
292
+ for one agent loop, its **Gigacode** engine has the model write a Python program
293
+ that orchestrates multiple sub-agents. The runtime then executes that program.
295
294
 
296
295
  ![Kolega Code in action](docs/src/assets/demo.gif)
297
296
 
298
- ## Built for work one agent cannot cover
299
-
300
- Most terminal agents are strongest when one model can reason through one task at a
301
- time. Kolega Code keeps that familiar workflow, then adds orchestration for broad work:
302
- large audits, sweeping migrations, cross-file checks, adversarial reviews, and
303
- implementation plans whose pieces can run independently.
304
-
305
- With [Gigacode](https://kolega-ai.github.io/kolega-code/gigacode/), Kolega Code can:
306
-
307
- - **Fan out many sub-agents at once.** Split a wide codebase review by package,
308
- assign independent implementation tasks, or run checks across many directories in
309
- parallel.
310
- - **Use real workflow shapes.** The agent can generate parallel phases, pipelines,
311
- loops, judge panels, and synthesis steps instead of only delegating one task at a
312
- time.
313
- - **Keep orchestration visible.** Workflow phase headers and progress lines appear
314
- in the transcript; the sub-agent inspector shows each agent's live trajectory.
315
- - **Save inspectable artifacts.** Each run keeps the generated workflow script,
316
- result files, a Markdown transcript, raw JSONL, a resume journal, and debug
317
- sub-agent transcripts under Kolega Code's state directory.
318
- - **Run in either mode.** In Plan mode, workflow sub-agents stay read-only for
319
- parallel investigation. In Build mode, they can use the full coding toolset.
320
- - **Resume interrupted runs.** Finished workflow steps are journaled so a deliberate
321
- resume does not have to restart the whole fan-out.
322
-
323
- Use normal chat for focused changes. Turn on Gigacode when the problem is broad
324
- enough that one serial agent pass would be the bottleneck.
325
-
326
- ## Features
327
-
328
- - **Gigacode orchestration:** parallel, pipelined, looped, judged, and synthesized
329
- multi-agent workflows with saved artifacts and resume support.
330
- - **Specialized sub-agents:** planning, building/coder, investigation, general, and
331
- browser agents, with live activity tracking in the TUI.
332
- - **Repo tools:** read and search code, create files, apply precise edits, and inspect
333
- session changes/diffs.
334
- - **Terminal execution:** run shell commands with streamed output and project-level
335
- permission controls.
336
- - **Plan/build workflow:** use read-only Plan mode for investigation and a reviewable
337
- task list, then Build mode to implement.
338
- - **Web search and browsing:** DuckDuckGo works by default with no key; Firecrawl,
339
- Tavily, and SearXNG are configurable search backends. Kolega Code can also fetch URLs
340
- directly and use a Playwright-powered browser agent for interactive sites.
341
- - **MCP servers:** connect verified `streamable_http`, `sse`, and `stdio` MCP servers
297
+ ## Gigacode: model-authored orchestration
298
+
299
+ For a repo-wide review, a migration, or a plan with independent workstreams, the
300
+ model writes an orchestration program instead of delegating workers one at a
301
+ time. The program can combine parallel phases, pipelines, adversarial
302
+ verification, judge panels, and synthesis gates to fit the task. The runtime
303
+ saves the script so it can be inspected and run again.
304
+
305
+ Claude Code uses the same model-authored approach for its dynamic workflows
306
+ (ultracode). Kolega Code provides an open, provider-agnostic implementation
307
+ whose runtime source is available in this repository.
308
+
309
+ The runtime journals each completed agent call to disk. Resume is content-keyed
310
+ rather than positional: when you use `resume_from_run_id`, calls with unchanged
311
+ semantic inputs replay from the journal at zero token cost. This still works if
312
+ the script was edited or reordered, and it works across sessions and process
313
+ restarts.
314
+
315
+ Read [how gigacode works](how-gigacode-works.md) for the architecture, or an
316
+ [unedited model-authored workflow](examples/parallel-code-review.py) with its
317
+ full provenance and execution record.
318
+
319
+ ## How it works
320
+
321
+ The model investigates your repo, then writes a Python program against a small
322
+ runtime API (`agent`, `parallel`, `pipeline`, `phase`, `budget`). The runtime
323
+ enforces concurrency caps, an agent-count backstop, and token-budget accounting.
324
+ It dispatches typed sub-agents, including read-only investigators, coders, and
325
+ browser agents, whose activity streams into the TUI's sub-agent inspector.
326
+
327
+ As the run progresses, the runtime writes the script, per-call results,
328
+ transcripts, and final result to disk. An interrupted or budget-capped run keeps
329
+ its journal and can be resumed, with unchanged calls replaying free. The
330
+ mechanics, guarantees, and limitations are documented in
331
+ [how-gigacode-works.md](how-gigacode-works.md).
332
+
333
+ ## The rest of the agent
334
+
335
+ Gigacode is off by default. Enable it with `/gigacode on`. For focused changes,
336
+ use Kolega Code as an ordinary terminal coding agent:
337
+
338
+ - **Plan/Build modes:** read-only Plan mode for investigation and a reviewable
339
+ task list, Build mode to implement (`Shift+Tab` to switch). In Plan mode,
340
+ workflow sub-agents are forced read-only too.
341
+ - **Repo tools:** read and search code, create files, apply precise edits, and
342
+ inspect session changes/diffs.
343
+ - **Terminal execution:** run shell commands with streamed output and
344
+ project-level permission controls.
345
+ - **Web search and browsing:** DuckDuckGo by default with no key; Firecrawl,
346
+ Tavily, and SearXNG configurable; direct URL fetch; a Playwright-powered
347
+ browser agent for interactive sites.
348
+ - **MCP servers:** connect `streamable_http`, `sse`, and `stdio` MCP servers
342
349
  (including OAuth-enabled HTTP servers) as permission-gated tools.
343
- - **Model routing:** choose provider/model combinations, set thinking effort, split
344
- long-context/fast/thinking roles, and override models per agent role.
345
- - **Interactive or scriptable:** use the Textual TUI, queue follow-up prompts
346
- while the agent is working, run `kolega-code ask`, request JSON output,
347
- list/export/resume sessions, and diagnose setup with `doctor`.
348
- - **Extensibility:** add agent skills, override prompts with project templates, run
349
- lifecycle hooks, and persist project permission rules.
350
- - **Local-first state:** sessions, settings, permissions, OAuth tokens, and API-key
351
- settings stay on your machine with restrictive permissions where applicable.
350
+ - **Interactive or scriptable:** Textual TUI with queued follow-ups, one-shot
351
+ `kolega-code ask` with JSON output, session list/export/resume, `doctor`.
352
+ - **Extensibility:** agent skills, project prompt-template overrides
353
+ ([docs](https://kolega-ai.github.io/kolega-code/configuration/prompt-overrides/)),
354
+ lifecycle hooks, persistent project permission rules.
355
+ - **Local-first state:** sessions, settings, permissions, OAuth tokens, and
356
+ API-key settings stay on your machine with restrictive permissions where
357
+ applicable.
352
358
 
353
359
  ## Quick start
354
360
 
@@ -378,9 +384,9 @@ kolega-code .
378
384
  ```
379
385
 
380
386
  **3. Connect a model.** Complete the first-run wizard with ChatGPT sign-in or an
381
- API key. Later, open the categorized Settings screen from the sidebar or with
382
- `/settings`. Use `Shift+Tab` to switch between **Plan** and **Build** mode, or run
383
- `/gigacode on` when a task is broad enough for fan-out.
387
+ API key. Later, open Settings from the sidebar or with `/settings`. Use
388
+ `Shift+Tab` to switch between **Plan** and **Build** mode, or run `/gigacode on`
389
+ when a task is broad enough for fan-out.
384
390
 
385
391
  Resume a previous conversation:
386
392
 
@@ -396,7 +402,7 @@ kolega-code . --resume <id> # a specific Resume ID from `sessions list`
396
402
  | **Interactive TUI** | `kolega-code .` | Day-to-day development, exploration, orchestration |
397
403
  | **One-shot** | `kolega-code ask "…"` | Scripting, automation, quick questions, CI |
398
404
 
399
- There are also helper commands for managing sessions and checking your setup:
405
+ Helper commands for sessions and setup:
400
406
 
401
407
  ```bash
402
408
  kolega-code ask "summarize this repository" --project .
@@ -404,10 +410,14 @@ kolega-code sessions list --project .
404
410
  kolega-code doctor --project .
405
411
  ```
406
412
 
407
- ## Supported providers
413
+ ## Models and routing
408
414
 
409
- Kolega Code supports a broad model-provider catalog and lets you route models by
410
- role instead of forcing one model to do every job.
415
+ Kolega Code can route models by role. You can use a strong long-context model
416
+ for the main loop, a faster model for utility calls, and a dedicated model for
417
+ extended thinking. Per-agent-role overrides are available for planning,
418
+ building, investigation, general, and browser agents. A Gigacode workflow can
419
+ also pin cheaper models to individual calls with `model_override`, allowing one
420
+ model to write the orchestration while cheaper models run its agents.
411
421
 
412
422
  Supported model providers:
413
423
 
@@ -428,38 +438,21 @@ Supported model providers:
428
438
  - Ollama Cloud
429
439
  - local Llama
430
440
 
431
- Supported web-search backends:
432
-
433
- - DuckDuckGo — default, no key required
434
- - Firecrawl
435
- - Tavily
436
- - SearXNG — self-hosted option
441
+ With a paid **ChatGPT** plan (Plus, Pro, or Business), `/login chatgpt` runs
442
+ OpenAI models without a separate API key; tokens are stored locally (chmod `600`)
443
+ and refreshed automatically. See
444
+ [Sign in with ChatGPT](https://kolega-ai.github.io/kolega-code/configuration/sign-in-with-chatgpt/).
437
445
 
446
+ Web search backends include DuckDuckGo (the default, with no key), Firecrawl,
447
+ Tavily, and self-hosted SearXNG. Choose one in Settings or with
448
+ `KOLEGA_CODE_WEB_SEARCH_BACKEND`.
438
449
  See [Providers & Models](https://kolega-ai.github.io/kolega-code/configuration/providers-and-models/)
439
450
  for model IDs, role configuration, API-key variables, and thinking-effort options.
440
451
 
441
- ## Model routing
442
-
443
- Kolega Code can assign different models to different operational roles: a strong
444
- long-context model for the main coding loop, a faster model for utility calls, and
445
- a dedicated model for extended thinking. You can also override models per agent
446
- role — planning, building, investigation, general, and browser — so wide workflows
447
- can use cheaper models where they fit and stronger models where they matter.
448
-
449
- ## Sign in with ChatGPT
450
-
451
- If you have a paid **ChatGPT** plan (Plus, Pro, or Business), you can use it to run
452
- OpenAI models instead of a separate API key. Run `/login chatgpt` in the TUI,
453
- complete the browser sign-in, and Kolega Code switches to the **OpenAI (ChatGPT
454
- subscription)** provider (default `gpt-5.6-sol`). Tokens are stored locally (chmod
455
- `600`) and refreshed automatically; `/logout chatgpt` removes them. See
456
- [Sign in with ChatGPT](https://kolega-ai.github.io/kolega-code/configuration/sign-in-with-chatgpt/).
457
-
458
452
  ## Configuration
459
453
 
460
- Set your provider, model, and API keys from first-run onboarding or the full-screen
461
- Settings editor in the UI, or via environment variables and flags for
462
- non-interactive use:
454
+ Set provider, model, and API keys from onboarding or the Settings editor, or via
455
+ environment variables and flags for non-interactive use:
463
456
 
464
457
  ```bash
465
458
  export KOLEGA_CODE_PROVIDER=deepseek
@@ -467,24 +460,12 @@ export DEEPSEEK_API_KEY=...
467
460
  kolega-code ask "summarize this repository" --project . --provider deepseek --model deepseek-v4-pro
468
461
  ```
469
462
 
470
- API key variables only provide credentials — pick a provider/model explicitly or
471
- save one in Settings. Local session state lives under your platform's state
463
+ API key variables only provide credentials. Pick a provider and model explicitly
464
+ or save them in Settings. Local session state lives under your platform's state
472
465
  directory unless `KOLEGA_CODE_STATE_DIR` is set. See the
473
466
  [Configuration docs](https://kolega-ai.github.io/kolega-code/configuration/settings-and-api-keys/)
474
467
  for the full story.
475
468
 
476
- The `web_search` tool uses DuckDuckGo by default without a key. To choose another
477
- backend, set it in **Settings** or export `KOLEGA_CODE_WEB_SEARCH_BACKEND` as
478
- `firecrawl`, `tavily`, or `searxng`; use `FIRECRAWL_API_KEY`, `TAVILY_API_KEY`, or
479
- `SEARXNG_BASE_URL` as needed.
480
-
481
- Projects can override Kolega Code's base prompts with uppercase Markdown templates
482
- in `.kolega/prompts/`. Generate editable starters with Jinja replacement tags using
483
- `/prompts dump` in the TUI or `kolega-code prompts dump --project .` in a terminal.
484
- To dump only selected starters, pass prompt names such as `coder`, `planning`, or
485
- `compaction` (filename aliases like `CODER.md` work too). Validate existing
486
- overrides with `/prompts validate` or `kolega-code prompts validate --project .`.
487
-
488
469
  ## Requirements
489
470
 
490
471
  - **Python 3.11+**
@@ -493,8 +474,12 @@ overrides with `/prompts validate` or `kolega-code prompts validate --project .`
493
474
 
494
475
  ## Documentation
495
476
 
477
+ This repo includes the [Gigacode architecture document](how-gigacode-works.md)
478
+ and an [unedited model-authored example workflow](examples/parallel-code-review.py).
479
+
496
480
  Full documentation lives at **[kolega-ai.github.io/kolega-code](https://kolega-ai.github.io/kolega-code/)**:
497
481
 
482
+ - [Gigacode user guide](https://kolega-ai.github.io/kolega-code/gigacode/)
498
483
  - [Quick Start](https://kolega-ai.github.io/kolega-code/getting-started/quick-start/)
499
484
  - [CLI overview](https://kolega-ai.github.io/kolega-code/cli/overview/)
500
485
  - [How it works & concepts](https://kolega-ai.github.io/kolega-code/concepts/how-it-works/)
@@ -0,0 +1,227 @@
1
+ # Kolega Code
2
+
3
+ **A terminal coding agent where the model writes its own multi-agent workflows.**
4
+
5
+ [![PyPI version](https://img.shields.io/pypi/v/kolega-code)](https://pypi.org/project/kolega-code/)
6
+ [![Python versions](https://img.shields.io/pypi/pyversions/kolega-code)](https://pypi.org/project/kolega-code/)
7
+ [![License: Apache-2.0](https://img.shields.io/badge/license-Apache--2.0-blue)](LICENSE)
8
+ [![CI](https://github.com/kolega-ai/kolega-code/actions/workflows/ci.yml/badge.svg)](https://github.com/kolega-ai/kolega-code/actions/workflows/ci.yml)
9
+ [![Coverage](docs/src/assets/coverage.svg)](https://github.com/kolega-ai/kolega-code/actions/workflows/ci.yml)
10
+ [![Docs](https://img.shields.io/badge/docs-kolega--ai.github.io-blue)](https://kolega-ai.github.io/kolega-code/)
11
+ [![Changelog](https://img.shields.io/badge/changelog-keep%20up-blue)](CHANGELOG.md)
12
+
13
+ Kolega Code is a local-first terminal coding agent. For work that is too broad
14
+ for one agent loop, its **Gigacode** engine has the model write a Python program
15
+ that orchestrates multiple sub-agents. The runtime then executes that program.
16
+
17
+ ![Kolega Code in action](docs/src/assets/demo.gif)
18
+
19
+ ## Gigacode: model-authored orchestration
20
+
21
+ For a repo-wide review, a migration, or a plan with independent workstreams, the
22
+ model writes an orchestration program instead of delegating workers one at a
23
+ time. The program can combine parallel phases, pipelines, adversarial
24
+ verification, judge panels, and synthesis gates to fit the task. The runtime
25
+ saves the script so it can be inspected and run again.
26
+
27
+ Claude Code uses the same model-authored approach for its dynamic workflows
28
+ (ultracode). Kolega Code provides an open, provider-agnostic implementation
29
+ whose runtime source is available in this repository.
30
+
31
+ The runtime journals each completed agent call to disk. Resume is content-keyed
32
+ rather than positional: when you use `resume_from_run_id`, calls with unchanged
33
+ semantic inputs replay from the journal at zero token cost. This still works if
34
+ the script was edited or reordered, and it works across sessions and process
35
+ restarts.
36
+
37
+ Read [how gigacode works](how-gigacode-works.md) for the architecture, or an
38
+ [unedited model-authored workflow](examples/parallel-code-review.py) with its
39
+ full provenance and execution record.
40
+
41
+ ## How it works
42
+
43
+ The model investigates your repo, then writes a Python program against a small
44
+ runtime API (`agent`, `parallel`, `pipeline`, `phase`, `budget`). The runtime
45
+ enforces concurrency caps, an agent-count backstop, and token-budget accounting.
46
+ It dispatches typed sub-agents, including read-only investigators, coders, and
47
+ browser agents, whose activity streams into the TUI's sub-agent inspector.
48
+
49
+ As the run progresses, the runtime writes the script, per-call results,
50
+ transcripts, and final result to disk. An interrupted or budget-capped run keeps
51
+ its journal and can be resumed, with unchanged calls replaying free. The
52
+ mechanics, guarantees, and limitations are documented in
53
+ [how-gigacode-works.md](how-gigacode-works.md).
54
+
55
+ ## The rest of the agent
56
+
57
+ Gigacode is off by default. Enable it with `/gigacode on`. For focused changes,
58
+ use Kolega Code as an ordinary terminal coding agent:
59
+
60
+ - **Plan/Build modes:** read-only Plan mode for investigation and a reviewable
61
+ task list, Build mode to implement (`Shift+Tab` to switch). In Plan mode,
62
+ workflow sub-agents are forced read-only too.
63
+ - **Repo tools:** read and search code, create files, apply precise edits, and
64
+ inspect session changes/diffs.
65
+ - **Terminal execution:** run shell commands with streamed output and
66
+ project-level permission controls.
67
+ - **Web search and browsing:** DuckDuckGo by default with no key; Firecrawl,
68
+ Tavily, and SearXNG configurable; direct URL fetch; a Playwright-powered
69
+ browser agent for interactive sites.
70
+ - **MCP servers:** connect `streamable_http`, `sse`, and `stdio` MCP servers
71
+ (including OAuth-enabled HTTP servers) as permission-gated tools.
72
+ - **Interactive or scriptable:** Textual TUI with queued follow-ups, one-shot
73
+ `kolega-code ask` with JSON output, session list/export/resume, `doctor`.
74
+ - **Extensibility:** agent skills, project prompt-template overrides
75
+ ([docs](https://kolega-ai.github.io/kolega-code/configuration/prompt-overrides/)),
76
+ lifecycle hooks, persistent project permission rules.
77
+ - **Local-first state:** sessions, settings, permissions, OAuth tokens, and
78
+ API-key settings stay on your machine with restrictive permissions where
79
+ applicable.
80
+
81
+ ## Quick start
82
+
83
+ **1. Install** with the script:
84
+
85
+ ```bash
86
+ curl -fsSL https://kolega.dev/install-kolega-code.sh | sh
87
+ ```
88
+
89
+ Or with [uv](https://docs.astral.sh/uv/) (or `pip`):
90
+
91
+ ```bash
92
+ uv tool install kolega-code
93
+ # or: pip install kolega-code
94
+ ```
95
+
96
+ Verify the install:
97
+
98
+ ```bash
99
+ kolega-code --version
100
+ ```
101
+
102
+ **2. Start a session** in your project:
103
+
104
+ ```bash
105
+ kolega-code .
106
+ ```
107
+
108
+ **3. Connect a model.** Complete the first-run wizard with ChatGPT sign-in or an
109
+ API key. Later, open Settings from the sidebar or with `/settings`. Use
110
+ `Shift+Tab` to switch between **Plan** and **Build** mode, or run `/gigacode on`
111
+ when a task is broad enough for fan-out.
112
+
113
+ Resume a previous conversation:
114
+
115
+ ```bash
116
+ kolega-code . --resume # latest session
117
+ kolega-code . --resume <id> # a specific Resume ID from `sessions list`
118
+ ```
119
+
120
+ ## Two ways to use it
121
+
122
+ | Mode | Command | Best for |
123
+ | --- | --- | --- |
124
+ | **Interactive TUI** | `kolega-code .` | Day-to-day development, exploration, orchestration |
125
+ | **One-shot** | `kolega-code ask "…"` | Scripting, automation, quick questions, CI |
126
+
127
+ Helper commands for sessions and setup:
128
+
129
+ ```bash
130
+ kolega-code ask "summarize this repository" --project .
131
+ kolega-code sessions list --project .
132
+ kolega-code doctor --project .
133
+ ```
134
+
135
+ ## Models and routing
136
+
137
+ Kolega Code can route models by role. You can use a strong long-context model
138
+ for the main loop, a faster model for utility calls, and a dedicated model for
139
+ extended thinking. Per-agent-role overrides are available for planning,
140
+ building, investigation, general, and browser agents. A Gigacode workflow can
141
+ also pin cheaper models to individual calls with `model_override`, allowing one
142
+ model to write the orchestration while cheaper models run its agents.
143
+
144
+ Supported model providers:
145
+
146
+ - Anthropic
147
+ - OpenAI API
148
+ - OpenAI via ChatGPT subscription sign-in
149
+ - Google
150
+ - Groq
151
+ - Together.ai
152
+ - Fireworks.ai
153
+ - xAI / Grok
154
+ - DashScope / Qwen
155
+ - OpenRouter (gateway to 250+ tool-capable models)
156
+ - Moonshot / Kimi
157
+ - DeepSeek
158
+ - Z.AI / GLM Coding Plan
159
+ - Kimi Coding Plan
160
+ - Ollama Cloud
161
+ - local Llama
162
+
163
+ With a paid **ChatGPT** plan (Plus, Pro, or Business), `/login chatgpt` runs
164
+ OpenAI models without a separate API key; tokens are stored locally (chmod `600`)
165
+ and refreshed automatically. See
166
+ [Sign in with ChatGPT](https://kolega-ai.github.io/kolega-code/configuration/sign-in-with-chatgpt/).
167
+
168
+ Web search backends include DuckDuckGo (the default, with no key), Firecrawl,
169
+ Tavily, and self-hosted SearXNG. Choose one in Settings or with
170
+ `KOLEGA_CODE_WEB_SEARCH_BACKEND`.
171
+ See [Providers & Models](https://kolega-ai.github.io/kolega-code/configuration/providers-and-models/)
172
+ for model IDs, role configuration, API-key variables, and thinking-effort options.
173
+
174
+ ## Configuration
175
+
176
+ Set provider, model, and API keys from onboarding or the Settings editor, or via
177
+ environment variables and flags for non-interactive use:
178
+
179
+ ```bash
180
+ export KOLEGA_CODE_PROVIDER=deepseek
181
+ export DEEPSEEK_API_KEY=...
182
+ kolega-code ask "summarize this repository" --project . --provider deepseek --model deepseek-v4-pro
183
+ ```
184
+
185
+ API key variables only provide credentials. Pick a provider and model explicitly
186
+ or save them in Settings. Local session state lives under your platform's state
187
+ directory unless `KOLEGA_CODE_STATE_DIR` is set. See the
188
+ [Configuration docs](https://kolega-ai.github.io/kolega-code/configuration/settings-and-api-keys/)
189
+ for the full story.
190
+
191
+ ## Requirements
192
+
193
+ - **Python 3.11+**
194
+ - An **API key**, ChatGPT sign-in, or local model for at least one supported model provider
195
+ - A terminal that supports a modern TUI (most do)
196
+
197
+ ## Documentation
198
+
199
+ This repo includes the [Gigacode architecture document](how-gigacode-works.md)
200
+ and an [unedited model-authored example workflow](examples/parallel-code-review.py).
201
+
202
+ Full documentation lives at **[kolega-ai.github.io/kolega-code](https://kolega-ai.github.io/kolega-code/)**:
203
+
204
+ - [Gigacode user guide](https://kolega-ai.github.io/kolega-code/gigacode/)
205
+ - [Quick Start](https://kolega-ai.github.io/kolega-code/getting-started/quick-start/)
206
+ - [CLI overview](https://kolega-ai.github.io/kolega-code/cli/overview/)
207
+ - [How it works & concepts](https://kolega-ai.github.io/kolega-code/concepts/how-it-works/)
208
+ - [Configuration](https://kolega-ai.github.io/kolega-code/configuration/settings-and-api-keys/)
209
+
210
+ ## Project resources
211
+
212
+ - [Documentation](https://kolega-ai.github.io/kolega-code/)
213
+ - [Releases](https://github.com/kolega-ai/kolega-code/releases)
214
+ - [Changelog](CHANGELOG.md)
215
+ - [Contributing](CONTRIBUTING.md)
216
+ - [Security policy](SECURITY.md)
217
+ - [Issue tracker](https://github.com/kolega-ai/kolega-code/issues)
218
+
219
+ ## Contributing
220
+
221
+ Contributions are welcome. See [CONTRIBUTING.md](CONTRIBUTING.md) for local setup,
222
+ running the test suite, and building the docs site. Please report security issues
223
+ privately per [SECURITY.md](SECURITY.md).
224
+
225
+ ## License
226
+
227
+ Released under the [Apache License 2.0](LICENSE).
@@ -151,4 +151,4 @@ __all__ = [
151
151
  "parse_git_status_output",
152
152
  ]
153
153
 
154
- __version__ = "0.26.0"
154
+ __version__ = "0.26.2"
@@ -51,4 +51,4 @@ __all__ = [
51
51
  "ToolExtension",
52
52
  ]
53
53
 
54
- __version__ = "0.26.0"
54
+ __version__ = "0.26.2"
@@ -19,8 +19,8 @@ from .errors import (
19
19
  WorkflowScriptError,
20
20
  )
21
21
  from .executor import DEFAULT_MAX_AGENT_DEPTH, MAX_AGENT_DEPTH, extract_meta, run_script, safe_builtins
22
- from .journal import RunJournal, saved_workflows_dir, workflows_root
23
- from .runtime import DEFAULT_AGENT_CAP, MAX_FANOUT, WorkflowRuntime, default_concurrency
22
+ from .journal import ResumeCache, RunJournal, saved_workflows_dir, workflows_root
23
+ from .runtime import DEFAULT_AGENT_CAP, DEFAULT_WORKFLOW_CONCURRENCY, MAX_FANOUT, WorkflowRuntime
24
24
  from .types import AgentRunResult, AgentRunSpec, DispatchFn, EmitFn
25
25
 
26
26
  __all__ = [
@@ -34,11 +34,12 @@ __all__ = [
34
34
  "safe_builtins",
35
35
  "DEFAULT_MAX_AGENT_DEPTH",
36
36
  "MAX_AGENT_DEPTH",
37
+ "ResumeCache",
37
38
  "RunJournal",
38
39
  "workflows_root",
39
40
  "saved_workflows_dir",
40
41
  "WorkflowRuntime",
41
- "default_concurrency",
42
+ "DEFAULT_WORKFLOW_CONCURRENCY",
42
43
  "MAX_FANOUT",
43
44
  "DEFAULT_AGENT_CAP",
44
45
  "AgentRunSpec",
@@ -20,6 +20,9 @@ from typing import Any, Dict
20
20
  from .errors import WorkflowScriptError
21
21
 
22
22
  WRAPPER_NAME = "__workflow_main__"
23
+ # Filename the script is compiled under; traceback frames with this filename
24
+ # carry line numbers into the authored source (AST wrapping preserves them).
25
+ SCRIPT_FILENAME = "<workflow>"
23
26
  DEFAULT_MAX_AGENT_DEPTH = 1
24
27
  MAX_AGENT_DEPTH = 2
25
28
 
@@ -173,7 +176,7 @@ async def run_script(source: str, namespace: Dict[str, Any]) -> Any:
173
176
  """
174
177
  try:
175
178
  module = _wrap_as_coroutine(source)
176
- code = compile(module, "<workflow>", "exec")
179
+ code = compile(module, SCRIPT_FILENAME, "exec")
177
180
  except SyntaxError as exc:
178
181
  raise WorkflowScriptError(f"workflow script has a syntax error: {exc}") from exc
179
182